/* packet-woww.c
 * Routines for World of Warcraft World dissection
 * Copyright 2021, Gtker <woww@gtker.com>
 *
 * Wireshark - Network traffic analyzer
 * By Gerald Combs <gerald@wireshark.org>
 * Copyright 1998 Gerald Combs
 *
 * SPDX-License-Identifier: GPL-2.0-or-later
 */

/*
 * The protocol is used for World of Warcraft World packets.
 * These are seen when a client is connected to a world server and plays the game.
 * The WOW protocol (no extra W) packets are Login packets, and they are handled in
 * the packet-wow.c file.
 *
 * More info on world packets and login packets:
 * https://wowdev.wiki/World_Packet
 * https://wowdev.wiki/Login_Packet
 *
 * Currently this dissector is valid for 1.12.x, the most popular Vanilla version.
 *
 * All World packets contain a header with:
 * * A 16 bit big endian size field.
 * * A (32 or 16 bit) little endian opcode field.
 * Server to client opcodes are 16 bits while client to server opcodes are 32 bits.
 *
 * All world packets other than SMSG_AUTH_CHALLENGE and CMSG_AUTH_SESSION have
 * "encrypted" headers based on a 40 byte session key, however it is relatively
 * easily broken.
 *
 * SMSG packets are Server messages (from server) and CMSG packets are Client messages
 * (from client). MSG packets can be either.
 *
 * # SESSION KEY DEDUCTION:
 *
 * The header is encrypted through the formula `E = (x ^ S) + L` where:
 * * E is the encrypted value.
 * * x is the plain unencrypted value.
 * * S is a byte of the session key.
 * * L is the last encrypted value.
 *
 * The header is decrypted through the formula `x = (E - L) ^ S` with the same values.
 *
 * Notably, this allows us to deduce the session key value S if we know what the
 * unencrypted value x is. The L value is simply the last encrypted value sent.
 *
 * Fortunately, the client sends opcodes as 32bit little endian values, but there are no
 * opcodes that use the two most significant bytes meaning we can always count on them being 0.
 * This means we can now deduce the session key value S through `S = 0 ^ (E - L)` (where 0 is x).
 * Because of this we can deduce 2 bytes of the session key every client packet.
 */

#include <config.h>
#include <epan/packet.h>
#include <epan/conversation.h>
#include <epan/wmem_scopes.h>
#include <ptvcursor.h>

void proto_reg_handoff_woww(void);
void proto_register_woww(void);
static dissector_handle_t woww_handle;

static int proto_woww = -1;

/* Fields that all packets have */
static int hf_woww_size = -1;
static int hf_woww_opcode = -1;

static int hf_woww_string_length = -1;

static int hf_woww_aura_mask = -1;
static int hf_woww_aura = -1;
static int hf_woww_amount_of_masks = -1;
static int hf_woww_update_mask = -1;
static int hf_woww_update_mask_value = -1;

/* AUTOGENERATED_START_HF */
static int hf_woww_absorb = -1;
static int hf_woww_absorbed = -1;
static int hf_woww_absorbed_damage = -1;
static int hf_woww_action = -1;
static int hf_woww_action_bar = -1;
static int hf_woww_action_bars = -1;
static int hf_woww_action_type = -1;
static int hf_woww_activate_taxi_reply = -1;
static int hf_woww_actual_roll = -1;
static int hf_woww_addon_crc = -1;
static int hf_woww_addon_extra_crc = -1;
static int hf_woww_addon_has_signature = -1;
static int hf_woww_addon_name = -1;
static int hf_woww_addon_type = -1;
static int hf_woww_agility = -1;
static int hf_woww_ai_reaction = -1;
static int hf_woww_allow_movement = -1;
static int hf_woww_allowed_class = -1;
static int hf_woww_allowed_classes = -1;
static int hf_woww_allowed_genders = -1;
static int hf_woww_allowed_guild_id = -1;
static int hf_woww_allowed_maximum_level = -1;
static int hf_woww_allowed_minimum_level = -1;
static int hf_woww_allowed_race = -1;
static int hf_woww_allowed_races = -1;
static int hf_woww_ammo_display_id = -1;
static int hf_woww_ammo_inventory_type = -1;
static int hf_woww_ammo_type = -1;
static int hf_woww_amount = -1;
static int hf_woww_amount_bought = -1;
static int hf_woww_amount_for_sale = -1;
static int hf_woww_amount_of_accounts_in_guild = -1;
static int hf_woww_amount_of_auras = -1;
static int hf_woww_amount_of_carriers = -1;
static int hf_woww_amount_of_characters = -1;
static int hf_woww_amount_of_characters_in_guild = -1;
static int hf_woww_amount_of_choice_item_rewards = -1;
static int hf_woww_amount_of_cooldowns = -1;
static int hf_woww_amount_of_damages = -1;
static int hf_woww_amount_of_effects = -1;
static int hf_woww_amount_of_emotes = -1;
static int hf_woww_amount_of_entries = -1;
static int hf_woww_amount_of_events = -1;
static int hf_woww_amount_of_extra_fields = -1;
static int hf_woww_amount_of_factions = -1;
static int hf_woww_amount_of_friends = -1;
static int hf_woww_amount_of_gossip_items = -1;
static int hf_woww_amount_of_hits = -1;
static int hf_woww_amount_of_ignored = -1;
static int hf_woww_amount_of_item_rewards = -1;
static int hf_woww_amount_of_items = -1;
static int hf_woww_amount_of_logs = -1;
static int hf_woww_amount_of_mails = -1;
static int hf_woww_amount_of_members = -1;
static int hf_woww_amount_of_misses = -1;
static int hf_woww_amount_of_nodes = -1;
static int hf_woww_amount_of_objects = -1;
static int hf_woww_amount_of_outbid_items = -1;
static int hf_woww_amount_of_petitions = -1;
static int hf_woww_amount_of_pets = -1;
static int hf_woww_amount_of_players = -1;
static int hf_woww_amount_of_quests = -1;
static int hf_woww_amount_of_raid_infos = -1;
static int hf_woww_amount_of_reactions = -1;
static int hf_woww_amount_of_records = -1;
static int hf_woww_amount_of_required_items = -1;
static int hf_woww_amount_of_rights = -1;
static int hf_woww_amount_of_signatures = -1;
static int hf_woww_amount_of_spells = -1;
static int hf_woww_amount_of_states = -1;
static int hf_woww_amount_of_strings = -1;
static int hf_woww_amount_of_targets = -1;
static int hf_woww_amount_of_teammates = -1;
static int hf_woww_amount_of_zones = -1;
static int hf_woww_angle = -1;
static int hf_woww_animation_id = -1;
static int hf_woww_answer = -1;
static int hf_woww_answer_comment = -1;
static int hf_woww_apply = -1;
static int hf_woww_arcane_resistance = -1;
static int hf_woww_area = -1;
static int hf_woww_armor = -1;
static int hf_woww_attacker = -1;
static int hf_woww_attacker_guid = -1;
static int hf_woww_auction_duration_in_minutes = -1;
static int hf_woww_auction_house_id = -1;
static int hf_woww_auction_id = -1;
static int hf_woww_auction_main_category = -1;
static int hf_woww_auction_out_bid = -1;
static int hf_woww_auction_slot_id = -1;
static int hf_woww_auction_sub_category = -1;
static int hf_woww_auctioneer = -1;
static int hf_woww_auctioneer_guid = -1;
static int hf_woww_aura_duration = -1;
static int hf_woww_aura_slot = -1;
static int hf_woww_aura_type = -1;
static int hf_woww_auto_decline_time_in_msecs = -1;
static int hf_woww_auto_finish = -1;
static int hf_woww_average_wait_time_in_ms = -1;
static int hf_woww_background_color = -1;
static int hf_woww_backwards_running_speed = -1;
static int hf_woww_backwards_swimming_speed = -1;
static int hf_woww_bag = -1;
static int hf_woww_bag_family = -1;
static int hf_woww_bag_guid = -1;
static int hf_woww_bag_index = -1;
static int hf_woww_bag_slot = -1;
static int hf_woww_bag_type_subclass = -1;
static int hf_woww_battlefield_port_action = -1;
static int hf_woww_battleground_bracket = -1;
static int hf_woww_battleground_end_status = -1;
static int hf_woww_battleground_winner = -1;
static int hf_woww_battlegrounds = -1;
static int hf_woww_battlemaster = -1;
static int hf_woww_bg_type_id = -1;
static int hf_woww_bid = -1;
static int hf_woww_bidder = -1;
static int hf_woww_billing_flags = -1;
static int hf_woww_billing_rested = -1;
static int hf_woww_billing_time = -1;
static int hf_woww_block = -1;
static int hf_woww_blocked = -1;
static int hf_woww_blocked_amount = -1;
static int hf_woww_body = -1;
static int hf_woww_body_text = -1;
static int hf_woww_bonding = -1;
static int hf_woww_bonus_honor = -1;
static int hf_woww_border_color = -1;
static int hf_woww_border_style = -1;
static int hf_woww_bug_type = -1;
static int hf_woww_build = -1;
static int hf_woww_button = -1;
static int hf_woww_buy_bank_slot_result = -1;
static int hf_woww_buy_price = -1;
static int hf_woww_buy_result = -1;
static int hf_woww_buyback_slot = -1;
static int hf_woww_buyout = -1;
static int hf_woww_buyout_amount = -1;
static int hf_woww_cash_on_delivery_amount = -1;
static int hf_woww_cast_failure_reason = -1;
static int hf_woww_cast_flags = -1;
static int hf_woww_cast_item = -1;
static int hf_woww_caster = -1;
static int hf_woww_caster_guid = -1;
static int hf_woww_caster_is_spirit_healer = -1;
static int hf_woww_category_cooldown_in_msecs = -1;
static int hf_woww_channel = -1;
static int hf_woww_channel_flags = -1;
static int hf_woww_channel_member_flags = -1;
static int hf_woww_channel_name = -1;
static int hf_woww_channel_password = -1;
static int hf_woww_character_flags = -1;
static int hf_woww_character_guid = -1;
static int hf_woww_character_name = -1;
static int hf_woww_charter_display_id = -1;
static int hf_woww_charter_entry = -1;
static int hf_woww_charter_owner = -1;
static int hf_woww_chat_credit = -1;
static int hf_woww_chat_data_line_count = -1;
static int hf_woww_chat_data_size_uncompressed = -1;
static int hf_woww_chat_notify = -1;
static int hf_woww_chat_type = -1;
static int hf_woww_checked_timestamp = -1;
static int hf_woww_cinematic_sequence_id = -1;
static int hf_woww_civilian = -1;
static int hf_woww_class = -1;
static int hf_woww_class_mask = -1;
static int hf_woww_client_instance_id = -1;
static int hf_woww_client_proof = -1;
static int hf_woww_client_seed = -1;
static int hf_woww_code = -1;
static int hf_woww_coded = -1;
static int hf_woww_comment = -1;
static int hf_woww_compressed_chat_data = -1;
static int hf_woww_container_slots = -1;
static int hf_woww_content = -1;
static int hf_woww_cooldown_count = -1;
static int hf_woww_cooldown_in_msecs = -1;
static int hf_woww_cooldown_time_in_msecs = -1;
static int hf_woww_corpse_query_result = -1;
static int hf_woww_corpse_target_ally = -1;
static int hf_woww_corpse_target_enemy = -1;
static int hf_woww_cos_angle = -1;
static int hf_woww_cost_in_copper = -1;
static int hf_woww_count = -1;
static int hf_woww_countdown_time = -1;
static int hf_woww_counter = -1;
static int hf_woww_create_id = -1;
static int hf_woww_created_day = -1;
static int hf_woww_created_month = -1;
static int hf_woww_created_year = -1;
static int hf_woww_creature = -1;
static int hf_woww_creature_entry = -1;
static int hf_woww_creature_family = -1;
static int hf_woww_creature_guid = -1;
static int hf_woww_creature_id = -1;
static int hf_woww_creature_rank = -1;
static int hf_woww_creature_type = -1;
static int hf_woww_critical = -1;
static int hf_woww_current_health = -1;
static int hf_woww_current_power = -1;
static int hf_woww_damage = -1;
static int hf_woww_damage_float = -1;
static int hf_woww_damage_maximum = -1;
static int hf_woww_damage_minimum = -1;
static int hf_woww_damage_state = -1;
static int hf_woww_damage_type = -1;
static int hf_woww_damage_uint = -1;
static int hf_woww_data = -1;
static int hf_woww_data_type = -1;
static int hf_woww_datetime = -1;
static int hf_woww_days_since_last_updated = -1;
static int hf_woww_days_since_oldest_ticket_creation = -1;
static int hf_woww_days_since_ticket_creation = -1;
static int hf_woww_deadline = -1;
static int hf_woww_deaths = -1;
static int hf_woww_decompressed_addon_info_size = -1;
static int hf_woww_delay = -1;
static int hf_woww_delay_in_seconds = -1;
static int hf_woww_delay_time = -1;
static int hf_woww_description = -1;
static int hf_woww_destination_bag = -1;
static int hf_woww_destination_node = -1;
static int hf_woww_destination_position_x = -1;
static int hf_woww_destination_position_y = -1;
static int hf_woww_destination_position_z = -1;
static int hf_woww_destination_slot = -1;
static int hf_woww_destionation_slot = -1;
static int hf_woww_details = -1;
static int hf_woww_display_id = -1;
static int hf_woww_duel_winner_reason = -1;
static int hf_woww_durability = -1;
static int hf_woww_duration = -1;
static int hf_woww_eff = -1;
static int hf_woww_emblem_color = -1;
static int hf_woww_emblem_style = -1;
static int hf_woww_emote_delay = -1;
static int hf_woww_emote_delay_in_msecs = -1;
static int hf_woww_emote_enum = -1;
static int hf_woww_emote_int = -1;
static int hf_woww_enable_next = -1;
static int hf_woww_enable_pvp = -1;
static int hf_woww_enabled = -1;
static int hf_woww_enchantment = -1;
static int hf_woww_end_text = -1;
static int hf_woww_ended_without_interruption = -1;
static int hf_woww_enemy = -1;
static int hf_woww_energy = -1;
static int hf_woww_entry = -1;
static int hf_woww_entry_id = -1;
static int hf_woww_environmental_damage_type = -1;
static int hf_woww_equipment_display_id = -1;
static int hf_woww_equipped_item_class = -1;
static int hf_woww_equipped_item_inventory_type_mask = -1;
static int hf_woww_equipped_item_subclass_mask = -1;
static int hf_woww_event_descriptions = -1;
static int hf_woww_exp_group_bonus = -1;
static int hf_woww_experience = -1;
static int hf_woww_experience_award_type = -1;
static int hf_woww_experience_reward = -1;
static int hf_woww_experience_without_rested = -1;
static int hf_woww_expiration_time = -1;
static int hf_woww_extend_flag = -1;
static int hf_woww_face = -1;
static int hf_woww_facial_hair = -1;
static int hf_woww_faction_flag = -1;
static int hf_woww_faction_id = -1;
static int hf_woww_fall_time = -1;
static int hf_woww_far_sight_operation = -1;
static int hf_woww_fields = -1;
static int hf_woww_fire_resistance = -1;
static int hf_woww_first_bag_display_id = -1;
static int hf_woww_first_bag_inventory_id = -1;
static int hf_woww_first_login = -1;
static int hf_woww_first_rank = -1;
static int hf_woww_flags = -1;
static int hf_woww_focus = -1;
static int hf_woww_friend_name = -1;
static int hf_woww_friend_result = -1;
static int hf_woww_friend_status = -1;
static int hf_woww_frost_resistance = -1;
static int hf_woww_gain_multiplier = -1;
static int hf_woww_gender = -1;
static int hf_woww_gift_bag_index = -1;
static int hf_woww_gift_slot = -1;
static int hf_woww_gift_wrapper = -1;
static int hf_woww_gm_ticket_escalation_status = -1;
static int hf_woww_gm_ticket_queue_status = -1;
static int hf_woww_gm_ticket_response = -1;
static int hf_woww_gm_ticket_status = -1;
static int hf_woww_gm_ticket_status_response = -1;
static int hf_woww_gm_ticket_type = -1;
static int hf_woww_gold = -1;
static int hf_woww_gossip_list_id = -1;
static int hf_woww_grade = -1;
static int hf_woww_greeting = -1;
static int hf_woww_group_loot_setting = -1;
static int hf_woww_group_member_online_status = -1;
static int hf_woww_group_number = -1;
static int hf_woww_group_type = -1;
static int hf_woww_group_update_flags = -1;
static int hf_woww_guid = -1;
static int hf_woww_guids = -1;
static int hf_woww_guild = -1;
static int hf_woww_guild_charter_cost = -1;
static int hf_woww_guild_command = -1;
static int hf_woww_guild_command_result = -1;
static int hf_woww_guild_emblem_result = -1;
static int hf_woww_guild_event = -1;
static int hf_woww_guild_guid = -1;
static int hf_woww_guild_id = -1;
static int hf_woww_guild_info = -1;
static int hf_woww_guild_member_status = -1;
static int hf_woww_guild_name = -1;
static int hf_woww_hair_color = -1;
static int hf_woww_hair_style = -1;
static int hf_woww_happiness = -1;
static int hf_woww_has_been_saved = -1;
static int hf_woww_has_transport = -1;
static int hf_woww_health = -1;
static int hf_woww_highest_bid = -1;
static int hf_woww_highest_bidder = -1;
static int hf_woww_hit_info = -1;
static int hf_woww_hits = -1;
static int hf_woww_holy_resistance = -1;
static int hf_woww_homebind_timer = -1;
static int hf_woww_honor_points = -1;
static int hf_woww_honorable_kills = -1;
static int hf_woww_horizontal_speed = -1;
static int hf_woww_icon = -1;
static int hf_woww_id = -1;
static int hf_woww_ignore_name = -1;
static int hf_woww_ignored = -1;
static int hf_woww_inactive = -1;
static int hf_woww_index = -1;
static int hf_woww_info_block = -1;
static int hf_woww_info_type = -1;
static int hf_woww_initiator_guid = -1;
static int hf_woww_initiator_name = -1;
static int hf_woww_instance_id = -1;
static int hf_woww_instance_reset_failed_reason = -1;
static int hf_woww_intellect = -1;
static int hf_woww_interrupted_spell = -1;
static int hf_woww_inventory_result = -1;
static int hf_woww_inventory_type = -1;
static int hf_woww_invited_player = -1;
static int hf_woww_is_applied = -1;
static int hf_woww_is_frozen = -1;
static int hf_woww_is_online = -1;
static int hf_woww_is_wrapped = -1;
static int hf_woww_issue_date = -1;
static int hf_woww_item = -1;
static int hf_woww_item_bag_index = -1;
static int hf_woww_item_charges = -1;
static int hf_woww_item_class = -1;
static int hf_woww_item_count = -1;
static int hf_woww_item_creator = -1;
static int hf_woww_item_display_id = -1;
static int hf_woww_item_display_info = -1;
static int hf_woww_item_enchant_id = -1;
static int hf_woww_item_enchantment = -1;
static int hf_woww_item_entry = -1;
static int hf_woww_item_guid = -1;
static int hf_woww_item_icon = -1;
static int hf_woww_item_id = -1;
static int hf_woww_item_level = -1;
static int hf_woww_item_limit_category_id = -1;
static int hf_woww_item_name = -1;
static int hf_woww_item_owner = -1;
static int hf_woww_item_quality = -1;
static int hf_woww_item_random_properties_id = -1;
static int hf_woww_item_random_property_id = -1;
static int hf_woww_item_random_suffix = -1;
static int hf_woww_item_random_suffix_id = -1;
static int hf_woww_item_set = -1;
static int hf_woww_item_slot = -1;
static int hf_woww_item_spell_charges = -1;
static int hf_woww_item_stack_count = -1;
static int hf_woww_item_stack_size = -1;
static int hf_woww_item_stat_type = -1;
static int hf_woww_item_stat_value = -1;
static int hf_woww_item_sub_class = -1;
static int hf_woww_item_sub_class_mask = -1;
static int hf_woww_item_suffix_factor = -1;
static int hf_woww_item_target = -1;
static int hf_woww_item_target_entry = -1;
static int hf_woww_item_template = -1;
static int hf_woww_item_text_id = -1;
static int hf_woww_item_trade_target = -1;
static int hf_woww_items_required = -1;
static int hf_woww_join_as_group = -1;
static int hf_woww_key_version = -1;
static int hf_woww_kill_count = -1;
static int hf_woww_killing_blows = -1;
static int hf_woww_lag = -1;
static int hf_woww_language = -1;
static int hf_woww_language_id = -1;
static int hf_woww_last_week_honor = -1;
static int hf_woww_last_week_honorable = -1;
static int hf_woww_leader = -1;
static int hf_woww_level = -1;
static int hf_woww_level_played_time = -1;
static int hf_woww_lifetime_dishonorable = -1;
static int hf_woww_lifetime_honorable = -1;
static int hf_woww_list_from = -1;
static int hf_woww_list_start_item = -1;
static int hf_woww_listed_players = -1;
static int hf_woww_living_orientation = -1;
static int hf_woww_location_name = -1;
static int hf_woww_lock_id = -1;
static int hf_woww_log_format = -1;
static int hf_woww_logout_result = -1;
static int hf_woww_logout_speed = -1;
static int hf_woww_loot = -1;
static int hf_woww_loot_master = -1;
static int hf_woww_loot_method = -1;
static int hf_woww_loot_slot = -1;
static int hf_woww_looted_target_guid = -1;
static int hf_woww_loyalty = -1;
static int hf_woww_mail_id = -1;
static int hf_woww_mail_template_id = -1;
static int hf_woww_mail_type = -1;
static int hf_woww_mailbox = -1;
static int hf_woww_mailbox_guid = -1;
static int hf_woww_mailbox_id = -1;
static int hf_woww_mana = -1;
static int hf_woww_map = -1;
static int hf_woww_master_loot = -1;
static int hf_woww_material = -1;
static int hf_woww_max_count = -1;
static int hf_woww_max_durability = -1;
static int hf_woww_max_health = -1;
static int hf_woww_max_items = -1;
static int hf_woww_max_level_money_reward = -1;
static int hf_woww_max_power = -1;
static int hf_woww_maximum = -1;
static int hf_woww_maximum_level = -1;
static int hf_woww_maximum_signatures = -1;
static int hf_woww_meeting_stone_failure = -1;
static int hf_woww_meeting_stone_status = -1;
static int hf_woww_member = -1;
static int hf_woww_message = -1;
static int hf_woww_message_id = -1;
static int hf_woww_message_of_the_day = -1;
static int hf_woww_minimum = -1;
static int hf_woww_minimum_bid = -1;
static int hf_woww_minimum_level = -1;
static int hf_woww_minimum_signatures = -1;
static int hf_woww_misc = -1;
static int hf_woww_misc_value = -1;
static int hf_woww_money = -1;
static int hf_woww_money_in_trade = -1;
static int hf_woww_money_reward = -1;
static int hf_woww_monster = -1;
static int hf_woww_monster_move_type = -1;
static int hf_woww_monster_name = -1;
static int hf_woww_motd = -1;
static int hf_woww_mount_result = -1;
static int hf_woww_move_event = -1;
static int hf_woww_movement_counter = -1;
static int hf_woww_movement_flags = -1;
static int hf_woww_name = -1;
static int hf_woww_nature_resistance = -1;
static int hf_woww_nearest_node = -1;
static int hf_woww_new_guild_leader_name = -1;
static int hf_woww_new_item_chat_alert = -1;
static int hf_woww_new_item_creation_type = -1;
static int hf_woww_new_item_source = -1;
static int hf_woww_new_level = -1;
static int hf_woww_new_name = -1;
static int hf_woww_new_owner = -1;
static int hf_woww_new_speed = -1;
static int hf_woww_new_spell_id = -1;
static int hf_woww_next_page_id = -1;
static int hf_woww_next_quest_in_chain = -1;
static int hf_woww_next_resurrect_time = -1;
static int hf_woww_node_count = -1;
static int hf_woww_nodes = -1;
static int hf_woww_note = -1;
static int hf_woww_notification = -1;
static int hf_woww_npc = -1;
static int hf_woww_npc_guid = -1;
static int hf_woww_number_of_battlegrounds = -1;
static int hf_woww_number_of_choices = -1;
static int hf_woww_object_target = -1;
static int hf_woww_object_target_locked = -1;
static int hf_woww_object_type = -1;
static int hf_woww_objective_text = -1;
static int hf_woww_objective_texts = -1;
static int hf_woww_objectives = -1;
static int hf_woww_offer_reward_text = -1;
static int hf_woww_officer_note = -1;
static int hf_woww_old_mover = -1;
static int hf_woww_old_spell_id = -1;
static int hf_woww_online_players = -1;
static int hf_woww_op = -1;
static int hf_woww_opponent_name = -1;
static int hf_woww_orientation = -1;
static int hf_woww_out_bid = -1;
static int hf_woww_outbid_item_ids = -1;
static int hf_woww_outfit_id = -1;
static int hf_woww_own_flags = -1;
static int hf_woww_owner_guid = -1;
static int hf_woww_padding = -1;
static int hf_woww_page_id = -1;
static int hf_woww_page_material = -1;
static int hf_woww_page_text = -1;
static int hf_woww_party_operation = -1;
static int hf_woww_party_result = -1;
static int hf_woww_party_status = -1;
static int hf_woww_periodic_log = -1;
static int hf_woww_pet = -1;
static int hf_woww_pet_command_state = -1;
static int hf_woww_pet_current_health = -1;
static int hf_woww_pet_current_power = -1;
static int hf_woww_pet_display_id = -1;
static int hf_woww_pet_enabled = -1;
static int hf_woww_pet_family = -1;
static int hf_woww_pet_feedback = -1;
static int hf_woww_pet_guid = -1;
static int hf_woww_pet_level = -1;
static int hf_woww_pet_max_health = -1;
static int hf_woww_pet_max_power = -1;
static int hf_woww_pet_name = -1;
static int hf_woww_pet_name_timestamp = -1;
static int hf_woww_pet_number = -1;
static int hf_woww_pet_react_state = -1;
static int hf_woww_pet_slot = -1;
static int hf_woww_pet_talk_reason = -1;
static int hf_woww_pet_tame_failure_reason = -1;
static int hf_woww_petition = -1;
static int hf_woww_petition_guid = -1;
static int hf_woww_petition_result = -1;
static int hf_woww_pitch = -1;
static int hf_woww_player = -1;
static int hf_woww_player_chat_tag = -1;
static int hf_woww_player_guid = -1;
static int hf_woww_player_name = -1;
static int hf_woww_player_rank = -1;
static int hf_woww_player_with_killing_blow = -1;
static int hf_woww_point_map_id = -1;
static int hf_woww_point_opt = -1;
static int hf_woww_position = -1;
static int hf_woww_position_x = -1;
static int hf_woww_position_x_int = -1;
static int hf_woww_position_y = -1;
static int hf_woww_position_y_int = -1;
static int hf_woww_power = -1;
static int hf_woww_power_type = -1;
static int hf_woww_price = -1;
static int hf_woww_probability = -1;
static int hf_woww_public_key = -1;
static int hf_woww_public_note = -1;
static int hf_woww_pvp_rank = -1;
static int hf_woww_quest_completable = -1;
static int hf_woww_quest_failed_reason = -1;
static int hf_woww_quest_flags = -1;
static int hf_woww_quest_giver_status = -1;
static int hf_woww_quest_icon = -1;
static int hf_woww_quest_id = -1;
static int hf_woww_quest_level = -1;
static int hf_woww_quest_method = -1;
static int hf_woww_quest_party_message = -1;
static int hf_woww_quest_title = -1;
static int hf_woww_quest_type = -1;
static int hf_woww_question_id = -1;
static int hf_woww_queue_position = -1;
static int hf_woww_queue_slot = -1;
static int hf_woww_race = -1;
static int hf_woww_race_mask = -1;
static int hf_woww_racial_leader = -1;
static int hf_woww_rage = -1;
static int hf_woww_raid_group_error = -1;
static int hf_woww_raid_instance_message = -1;
static int hf_woww_raid_target_index = -1;
static int hf_woww_raid_target_update_type = -1;
static int hf_woww_random_property = -1;
static int hf_woww_random_property_id = -1;
static int hf_woww_ranged_range_modification = -1;
static int hf_woww_rank = -1;
static int hf_woww_rank_id = -1;
static int hf_woww_rank_name = -1;
static int hf_woww_rank_names = -1;
static int hf_woww_rank_progress_bar = -1;
static int hf_woww_raw_data = -1;
static int hf_woww_read_by_gm = -1;
static int hf_woww_realm_name = -1;
static int hf_woww_receiver = -1;
static int hf_woww_records = -1;
static int hf_woww_reputation_id = -1;
static int hf_woww_reputation_list_id = -1;
static int hf_woww_reputation_objective_faction = -1;
static int hf_woww_reputation_objective_value = -1;
static int hf_woww_reputation_rank = -1;
static int hf_woww_request_items_text = -1;
static int hf_woww_requested_rank = -1;
static int hf_woww_required_city_rank = -1;
static int hf_woww_required_honor_rank = -1;
static int hf_woww_required_item_count = -1;
static int hf_woww_required_item_id = -1;
static int hf_woww_required_kill_count = -1;
static int hf_woww_required_level = -1;
static int hf_woww_required_money = -1;
static int hf_woww_required_opposite_faction = -1;
static int hf_woww_required_opposite_reputation_value = -1;
static int hf_woww_required_reputation_faction = -1;
static int hf_woww_required_reputation_rank = -1;
static int hf_woww_required_skill = -1;
static int hf_woww_required_skill_rank = -1;
static int hf_woww_required_skill_value = -1;
static int hf_woww_required_spell = -1;
static int hf_woww_required_spell_focus = -1;
static int hf_woww_reserved_for_future_use = -1;
static int hf_woww_reset_time = -1;
static int hf_woww_resist = -1;
static int hf_woww_resisted = -1;
static int hf_woww_respect_resurrection_timer = -1;
static int hf_woww_reward = -1;
static int hf_woww_reward_spell = -1;
static int hf_woww_reward_spell_cast = -1;
static int hf_woww_rights = -1;
static int hf_woww_roll_number = -1;
static int hf_woww_roll_vote = -1;
static int hf_woww_round_time_in_ms = -1;
static int hf_woww_running_speed = -1;
static int hf_woww_scale = -1;
static int hf_woww_search_strings = -1;
static int hf_woww_searched_name = -1;
static int hf_woww_self_player = -1;
static int hf_woww_sell_item_result = -1;
static int hf_woww_sell_price = -1;
static int hf_woww_sender = -1;
static int hf_woww_sender_id = -1;
static int hf_woww_sender_name = -1;
static int hf_woww_sequence_id = -1;
static int hf_woww_server_id = -1;
static int hf_woww_server_message_type = -1;
static int hf_woww_server_seed = -1;
static int hf_woww_set_assistant = -1;
static int hf_woww_shadow_resistance = -1;
static int hf_woww_sheath = -1;
static int hf_woww_sheath_state = -1;
static int hf_woww_signer = -1;
static int hf_woww_simple_spell_cast_result = -1;
static int hf_woww_sin_angle = -1;
static int hf_woww_skill_id = -1;
static int hf_woww_skin = -1;
static int hf_woww_skin_color = -1;
static int hf_woww_slot = -1;
static int hf_woww_slot_id = -1;
static int hf_woww_slot_index = -1;
static int hf_woww_sound_id = -1;
static int hf_woww_source_bag = -1;
static int hf_woww_source_item_id = -1;
static int hf_woww_source_node = -1;
static int hf_woww_source_position_x = -1;
static int hf_woww_source_position_y = -1;
static int hf_woww_source_position_z = -1;
static int hf_woww_source_slot = -1;
static int hf_woww_speech_bubble_credit = -1;
static int hf_woww_speed = -1;
static int hf_woww_spell = -1;
static int hf_woww_spell_art_kit = -1;
static int hf_woww_spell_cast_result = -1;
static int hf_woww_spell_cast_target_flags = -1;
static int hf_woww_spell_category = -1;
static int hf_woww_spell_category_cooldown = -1;
static int hf_woww_spell_chain_previous = -1;
static int hf_woww_spell_chain_required = -1;
static int hf_woww_spell_charges = -1;
static int hf_woww_spell_cooldown = -1;
static int hf_woww_spell_cost = -1;
static int hf_woww_spell_count = -1;
static int hf_woww_spell_data_id = -1;
static int hf_woww_spell_effect = -1;
static int hf_woww_spell_effect_item_type = -1;
static int hf_woww_spell_id = -1;
static int hf_woww_spell_index = -1;
static int hf_woww_spell_miss_info = -1;
static int hf_woww_spell_on_lowest_slot = -1;
static int hf_woww_spell_ppm_rate = -1;
static int hf_woww_spell_school = -1;
static int hf_woww_spell_school_mask = -1;
static int hf_woww_spell_trigger = -1;
static int hf_woww_spell_visual_kit = -1;
static int hf_woww_spells = -1;
static int hf_woww_spirit = -1;
static int hf_woww_spline_elevation = -1;
static int hf_woww_spline_flag = -1;
static int hf_woww_spline_id = -1;
static int hf_woww_stable_result = -1;
static int hf_woww_stable_slots = -1;
static int hf_woww_stack_count = -1;
static int hf_woww_stackable = -1;
static int hf_woww_stamina = -1;
static int hf_woww_standing = -1;
static int hf_woww_start_bid = -1;
static int hf_woww_start_from_page = -1;
static int hf_woww_start_quest = -1;
static int hf_woww_starting_bid = -1;
static int hf_woww_state = -1;
static int hf_woww_stationery = -1;
static int hf_woww_status = -1;
static int hf_woww_status_id = -1;
static int hf_woww_strength = -1;
static int hf_woww_string = -1;
static int hf_woww_sub_name = -1;
static int hf_woww_subject = -1;
static int hf_woww_suggestion = -1;
static int hf_woww_summoner_guid = -1;
static int hf_woww_survey_id = -1;
static int hf_woww_swap_with_name = -1;
static int hf_woww_swimming_speed = -1;
static int hf_woww_talent_id = -1;
static int hf_woww_talent_point_cost = -1;
static int hf_woww_talent_reset_cost = -1;
static int hf_woww_target = -1;
static int hf_woww_target_error = -1;
static int hf_woww_target_guid = -1;
static int hf_woww_target_player = -1;
static int hf_woww_target_string = -1;
static int hf_woww_targets = -1;
static int hf_woww_taxi_mask_node_known = -1;
static int hf_woww_text = -1;
static int hf_woww_text_emote = -1;
static int hf_woww_text_id = -1;
static int hf_woww_texts = -1;
static int hf_woww_this_week_honor = -1;
static int hf_woww_this_week_honorable = -1;
static int hf_woww_time = -1;
static int hf_woww_time_in_msec = -1;
static int hf_woww_time_in_msecs = -1;
static int hf_woww_time_in_queue_in_ms = -1;
static int hf_woww_time_in_seconds = -1;
static int hf_woww_time_left = -1;
static int hf_woww_time_left_in_msecs = -1;
static int hf_woww_time_offline = -1;
static int hf_woww_time_passed = -1;
static int hf_woww_time_remaining = -1;
static int hf_woww_time_to_bg_autoleave_in_ms = -1;
static int hf_woww_time_to_bg_start_in_ms = -1;
static int hf_woww_time_to_remove_in_queue_in_ms = -1;
static int hf_woww_timer = -1;
static int hf_woww_timer_type = -1;
static int hf_woww_timescale = -1;
static int hf_woww_timestamp = -1;
static int hf_woww_title = -1;
static int hf_woww_title_text_id = -1;
static int hf_woww_today_honorable_and_dishonorable = -1;
static int hf_woww_todo_amount_of_signers = -1;
static int hf_woww_total_amount_of_auctions = -1;
static int hf_woww_total_cost = -1;
static int hf_woww_total_damage = -1;
static int hf_woww_total_exp = -1;
static int hf_woww_total_played_time = -1;
static int hf_woww_trade_slot = -1;
static int hf_woww_trade_slot_count = -1;
static int hf_woww_trade_slot_number = -1;
static int hf_woww_trade_status = -1;
static int hf_woww_trainer_spell_state = -1;
static int hf_woww_trainer_type = -1;
static int hf_woww_training_failure_reason = -1;
static int hf_woww_transfer_abort_reason = -1;
static int hf_woww_transport = -1;
static int hf_woww_transport_progress_in_ms = -1;
static int hf_woww_trigger_id = -1;
static int hf_woww_turn_rate = -1;
static int hf_woww_tutorial_data = -1;
static int hf_woww_tutorial_flag = -1;
static int hf_woww_type_flags = -1;
static int hf_woww_unimplemented = -1;
static int hf_woww_unit_enemy_target = -1;
static int hf_woww_unit_stand_state = -1;
static int hf_woww_unit_target = -1;
static int hf_woww_unknown_bytes = -1;
static int hf_woww_unknown_flags = -1;
static int hf_woww_unknown_float = -1;
static int hf_woww_unknown_guid = -1;
static int hf_woww_unknown_int = -1;
static int hf_woww_unread_mails = -1;
static int hf_woww_unused = -1;
static int hf_woww_update_available_flag = -1;
static int hf_woww_update_flag = -1;
static int hf_woww_update_type = -1;
static int hf_woww_url = -1;
static int hf_woww_url_info = -1;
static int hf_woww_usable = -1;
static int hf_woww_username = -1;
static int hf_woww_v_cos = -1;
static int hf_woww_v_sin = -1;
static int hf_woww_value = -1;
static int hf_woww_vendor = -1;
static int hf_woww_vendor_guid = -1;
static int hf_woww_vendor_slot = -1;
static int hf_woww_vertical_speed = -1;
static int hf_woww_victim = -1;
static int hf_woww_victim_guid = -1;
static int hf_woww_walking_speed = -1;
static int hf_woww_weather_change_type = -1;
static int hf_woww_weather_type = -1;
static int hf_woww_winning_player_guid = -1;
static int hf_woww_winning_roll = -1;
static int hf_woww_wiping_npc = -1;
static int hf_woww_won = -1;
static int hf_woww_world_result = -1;
static int hf_woww_x = -1;
static int hf_woww_xy_speed = -1;
static int hf_woww_y = -1;
static int hf_woww_yesterday_honor = -1;
static int hf_woww_yesterday_honorable = -1;
static int hf_woww_z = -1;
static int hf_woww_z_speed = -1;
static int hf_woww_zone_id = -1;
static int hf_woww_zone_or_sort = -1;
static int hf_woww_zones = -1;
/* AUTOGENERATED_END_HF */

#define WOWW_CLIENT_TO_SERVER pinfo->srcport > pinfo->destport
#define WOWW_SERVER_TO_CLIENT pinfo->srcport < pinfo->destport

// Allocate 8 because tree wants 32 bit aligned data
#define WOWW_HEADER_ARRAY_ALLOC_SIZE 8

// The session key is the result of two SHA-1 hashes appended, so it is
// _always_ 40 bytes.
#define WOWW_SESSION_KEY_LENGTH 40

static gint ett_woww = -1;
static gint ett_message = -1;
static gint ett_character = -1;

// Packets that do not have at least a u16 size field and a u16 opcode field are not valid.
#define WOWW_MIN_LENGTH 4

// A participant can either be the server or a client.
typedef struct WowwParticipant {
    // The previous encrypted value sent. Persists through headers.
    guint8 last_encrypted_value;
    // Index into the session key. Must always be in [0; WOWW_SESSION_KEY_LENGTH - 1].
    // Named idx because there's a check for 'index'
    guint8 idx;
    // The first header is unencrypted. Tracks if that header has been encountered.
    gboolean unencrypted_packet_encountered;
    // If a server message is unable to be fully decrypted we stop decrypting any
    // any more, since it's impossible to know if the PDU contains multiple messages
    // and thus how many times the session key index should be incremented.
    guint64 stopped_at;
} WowwParticipant_t;

typedef struct WowwConversation {
    // Secret session key known to the client and host.
    guint8 session_key[WOWW_SESSION_KEY_LENGTH];
    // Which values of the session key have been deduced.
    bool known_indices[WOWW_SESSION_KEY_LENGTH];
    // Cache headers that have already been decrypted to save time
    // as well as reduce headaches from out of order packets.
    wmem_map_t* decrypted_headers;
    // Packets that are not fully decryptable when received will need
    // to be decrypted later.
    wmem_map_t* headers_need_decryption;
    // The client and server will have different indices/last values
    // because they send different amounts of packets and with different
    // header lengths.
    WowwParticipant_t client;
    WowwParticipant_t server;
} WowwConversation_t;

typedef struct {
    // Index into the session key, named idx because there's a check for 'index'
    guint8 idx;
    guint8 last_encrypted_value;
} WowwPreviousValues_t;

typedef struct {
    guint8 size[2];
    guint8 opcode[];
} WowwDecryptedHeader_t;

/* AUTOGENERATED_START_ENUM */
typedef enum {
    ADDON_TYPE_BANNED = 0x0,
    ADDON_TYPE_ENABLED = 0x1,
    ADDON_TYPE_BLIZZARD = 0x2,
} e_addon_type;
static const value_string e_addon_type_strings[] =  {
    { ADDON_TYPE_BANNED, "Banned" },
    { ADDON_TYPE_ENABLED, "Enabled" },
    { ADDON_TYPE_BLIZZARD, "Blizzard" },
    { 0, NULL }
};

typedef enum {
    INFO_BLOCK_UNAVAILABLE = 0x0,
    INFO_BLOCK_AVAILABLE = 0x1,
} e_info_block;
static const value_string e_info_block_strings[] =  {
    { INFO_BLOCK_UNAVAILABLE, "Unavailable" },
    { INFO_BLOCK_AVAILABLE, "Available" },
    { 0, NULL }
};

typedef enum {
    KEY_VERSION_ZERO = 0x0,
    KEY_VERSION_ONE = 0x1,
    KEY_VERSION_TWO = 0x2,
    KEY_VERSION_THREE = 0x3,
    KEY_VERSION_FOUR = 0x4,
    KEY_VERSION_FIVE = 0x5,
    KEY_VERSION_SIX = 0x6,
    KEY_VERSION_SEVEN = 0x7,
    KEY_VERSION_EIGHT = 0x8,
    KEY_VERSION_NINE = 0x9,
} e_key_version;
static const value_string e_key_version_strings[] =  {
    { KEY_VERSION_ZERO, "Zero" },
    { KEY_VERSION_ONE, "One" },
    { KEY_VERSION_TWO, "Two" },
    { KEY_VERSION_THREE, "Three" },
    { KEY_VERSION_FOUR, "Four" },
    { KEY_VERSION_FIVE, "Five" },
    { KEY_VERSION_SIX, "Six" },
    { KEY_VERSION_SEVEN, "Seven" },
    { KEY_VERSION_EIGHT, "Eight" },
    { KEY_VERSION_NINE, "Nine" },
    { 0, NULL }
};

typedef enum {
    URL_INFO_UNAVAILABLE = 0x0,
    URL_INFO_AVAILABLE = 0x1,
} e_url_info;
static const value_string e_url_info_strings[] =  {
    { URL_INFO_UNAVAILABLE, "Unavailable" },
    { URL_INFO_AVAILABLE, "Available" },
    { 0, NULL }
};

typedef enum {
    AURA_TYPE_NONE = 0x00,
    AURA_TYPE_BIND_SIGHT = 0x01,
    AURA_TYPE_MOD_POSSESS = 0x02,
    AURA_TYPE_PERIODIC_DAMAGE = 0x03,
    AURA_TYPE_DUMMY = 0x04,
    AURA_TYPE_MOD_CONFUSE = 0x05,
    AURA_TYPE_MOD_CHARM = 0x06,
    AURA_TYPE_MOD_FEAR = 0x07,
    AURA_TYPE_PERIODIC_HEAL = 0x08,
    AURA_TYPE_MOD_ATTACKSPEED = 0x09,
    AURA_TYPE_MOD_THREAT = 0x0A,
    AURA_TYPE_MOD_TAUNT = 0x0B,
    AURA_TYPE_MOD_STUN = 0x0C,
    AURA_TYPE_MOD_DAMAGE_DONE = 0x0D,
    AURA_TYPE_MOD_DAMAGE_TAKEN = 0x0E,
    AURA_TYPE_DAMAGE_SHIELD = 0x0F,
    AURA_TYPE_MOD_STEALTH = 0x10,
    AURA_TYPE_MOD_STEALTH_DETECT = 0x11,
    AURA_TYPE_MOD_INVISIBILITY = 0x12,
    AURA_TYPE_MOD_INVISIBILITY_DETECTION = 0x13,
    AURA_TYPE_OBS_MOD_HEALTH = 0x14,
    AURA_TYPE_OBS_MOD_MANA = 0x15,
    AURA_TYPE_MOD_RESISTANCE = 0x16,
    AURA_TYPE_PERIODIC_TRIGGER_SPELL = 0x17,
    AURA_TYPE_PERIODIC_ENERGIZE = 0x18,
    AURA_TYPE_MOD_PACIFY = 0x19,
    AURA_TYPE_MOD_ROOT = 0x1A,
    AURA_TYPE_MOD_SILENCE = 0x1B,
    AURA_TYPE_REFLECT_SPELLS = 0x1C,
    AURA_TYPE_MOD_STAT = 0x1D,
    AURA_TYPE_MOD_SKILL = 0x1E,
    AURA_TYPE_MOD_INCREASE_SPEED = 0x1F,
    AURA_TYPE_MOD_INCREASE_MOUNTED_SPEED = 0x20,
    AURA_TYPE_MOD_DECREASE_SPEED = 0x21,
    AURA_TYPE_MOD_INCREASE_HEALTH = 0x22,
    AURA_TYPE_MOD_INCREASE_ENERGY = 0x23,
    AURA_TYPE_MOD_SHAPESHIFT = 0x24,
    AURA_TYPE_EFFECT_IMMUNITY = 0x25,
    AURA_TYPE_STATE_IMMUNITY = 0x26,
    AURA_TYPE_SCHOOL_IMMUNITY = 0x27,
    AURA_TYPE_DAMAGE_IMMUNITY = 0x28,
    AURA_TYPE_DISPEL_IMMUNITY = 0x29,
    AURA_TYPE_PROC_TRIGGER_SPELL = 0x2A,
    AURA_TYPE_PROC_TRIGGER_DAMAGE = 0x2B,
    AURA_TYPE_TRACK_CREATURES = 0x2C,
    AURA_TYPE_TRACK_RESOURCES = 0x2D,
    AURA_TYPE_UNKNOWN46 = 0x2E,
    AURA_TYPE_MOD_PARRY_PERCENT = 0x2F,
    AURA_TYPE_UNKNOWN48 = 0x30,
    AURA_TYPE_MOD_DODGE_PERCENT = 0x31,
    AURA_TYPE_MOD_BLOCK_SKILL = 0x32,
    AURA_TYPE_MOD_BLOCK_PERCENT = 0x33,
    AURA_TYPE_MOD_CRIT_PERCENT = 0x34,
    AURA_TYPE_PERIODIC_LEECH = 0x35,
    AURA_TYPE_MOD_HIT_CHANCE = 0x36,
    AURA_TYPE_MOD_SPELL_HIT_CHANCE = 0x37,
    AURA_TYPE_TRANSFORM = 0x38,
    AURA_TYPE_MOD_SPELL_CRIT_CHANCE = 0x39,
    AURA_TYPE_MOD_INCREASE_SWIM_SPEED = 0x3A,
    AURA_TYPE_MOD_DAMAGE_DONE_CREATURE = 0x3B,
    AURA_TYPE_MOD_PACIFY_SILENCE = 0x3C,
    AURA_TYPE_MOD_SCALE = 0x3D,
    AURA_TYPE_PERIODIC_HEALTH_FUNNEL = 0x3E,
    AURA_TYPE_PERIODIC_MANA_FUNNEL = 0x3F,
    AURA_TYPE_PERIODIC_MANA_LEECH = 0x40,
    AURA_TYPE_MOD_CASTING_SPEED_NOT_STACK = 0x41,
    AURA_TYPE_FEIGN_DEATH = 0x42,
    AURA_TYPE_MOD_DISARM = 0x43,
    AURA_TYPE_MOD_STALKED = 0x44,
    AURA_TYPE_SCHOOL_ABSORB = 0x45,
    AURA_TYPE_EXTRA_ATTACKS = 0x46,
    AURA_TYPE_MOD_SPELL_CRIT_CHANCE_SCHOOL = 0x47,
    AURA_TYPE_MOD_POWER_COST_SCHOOL_PCT = 0x48,
    AURA_TYPE_MOD_POWER_COST_SCHOOL = 0x49,
    AURA_TYPE_REFLECT_SPELLS_SCHOOL = 0x4A,
    AURA_TYPE_MOD_LANGUAGE = 0x4B,
    AURA_TYPE_FAR_SIGHT = 0x4C,
    AURA_TYPE_MECHANIC_IMMUNITY = 0x4D,
    AURA_TYPE_MOUNTED = 0x4E,
    AURA_TYPE_MOD_DAMAGE_PERCENT_DONE = 0x4F,
    AURA_TYPE_MOD_PERCENT_STAT = 0x50,
    AURA_TYPE_SPLIT_DAMAGE_PCT = 0x51,
    AURA_TYPE_WATER_BREATHING = 0x52,
    AURA_TYPE_MOD_BASE_RESISTANCE = 0x53,
    AURA_TYPE_MOD_REGEN = 0x54,
    AURA_TYPE_MOD_POWER_REGEN = 0x55,
    AURA_TYPE_CHANNEL_DEATH_ITEM = 0x56,
    AURA_TYPE_MOD_DAMAGE_PERCENT_TAKEN = 0x57,
    AURA_TYPE_MOD_HEALTH_REGEN_PERCENT = 0x58,
    AURA_TYPE_PERIODIC_DAMAGE_PERCENT = 0x59,
    AURA_TYPE_MOD_RESIST_CHANCE = 0x5A,
    AURA_TYPE_MOD_DETECT_RANGE = 0x5B,
    AURA_TYPE_PREVENTS_FLEEING = 0x5C,
    AURA_TYPE_MOD_UNATTACKABLE = 0x5D,
    AURA_TYPE_INTERRUPT_REGEN = 0x5E,
    AURA_TYPE_GHOST = 0x5F,
    AURA_TYPE_SPELL_MAGNET = 0x60,
    AURA_TYPE_MANA_SHIELD = 0x61,
    AURA_TYPE_MOD_SKILL_TALENT = 0x62,
    AURA_TYPE_MOD_ATTACK_POWER = 0x63,
    AURA_TYPE_AURAS_VISIBLE = 0x64,
    AURA_TYPE_MOD_RESISTANCE_PCT = 0x65,
    AURA_TYPE_MOD_MELEE_ATTACK_POWER_VERSUS = 0x66,
    AURA_TYPE_MOD_TOTAL_THREAT = 0x67,
    AURA_TYPE_WATER_WALK = 0x68,
    AURA_TYPE_FEATHER_FALL = 0x69,
    AURA_TYPE_HOVER = 0x6A,
    AURA_TYPE_ADD_FLAT_MODIFIER = 0x6B,
    AURA_TYPE_ADD_PCT_MODIFIER = 0x6C,
    AURA_TYPE_ADD_TARGET_TRIGGER = 0x6D,
    AURA_TYPE_MOD_POWER_REGEN_PERCENT = 0x6E,
    AURA_TYPE_ADD_CASTER_HIT_TRIGGER = 0x6F,
    AURA_TYPE_OVERRIDE_CLASS_SCRIPTS = 0x70,
    AURA_TYPE_MOD_RANGED_DAMAGE_TAKEN = 0x71,
    AURA_TYPE_MOD_RANGED_DAMAGE_TAKEN_PCT = 0x72,
    AURA_TYPE_MOD_HEALING = 0x73,
    AURA_TYPE_MOD_REGEN_DURING_COMBAT = 0x74,
    AURA_TYPE_MOD_MECHANIC_RESISTANCE = 0x75,
    AURA_TYPE_MOD_HEALING_PCT = 0x76,
    AURA_TYPE_SHARE_PET_TRACKING = 0x77,
    AURA_TYPE_UNTRACKABLE = 0x78,
    AURA_TYPE_EMPATHY = 0x79,
    AURA_TYPE_MOD_OFFHAND_DAMAGE_PCT = 0x7A,
    AURA_TYPE_MOD_TARGET_RESISTANCE = 0x7B,
    AURA_TYPE_MOD_RANGED_ATTACK_POWER = 0x7C,
    AURA_TYPE_MOD_MELEE_DAMAGE_TAKEN = 0x7D,
    AURA_TYPE_MOD_MELEE_DAMAGE_TAKEN_PCT = 0x7E,
    AURA_TYPE_RANGED_ATTACK_POWER_ATTACKER_BONUS = 0x7F,
    AURA_TYPE_MOD_POSSESS_PET = 0x80,
    AURA_TYPE_MOD_SPEED_ALWAYS = 0x81,
    AURA_TYPE_MOD_MOUNTED_SPEED_ALWAYS = 0x82,
    AURA_TYPE_MOD_RANGED_ATTACK_POWER_VERSUS = 0x83,
    AURA_TYPE_MOD_INCREASE_ENERGY_PERCENT = 0x84,
    AURA_TYPE_MOD_INCREASE_HEALTH_PERCENT = 0x85,
    AURA_TYPE_MOD_MANA_REGEN_INTERRUPT = 0x86,
    AURA_TYPE_MOD_HEALING_DONE = 0x87,
    AURA_TYPE_MOD_HEALING_DONE_PERCENT = 0x88,
    AURA_TYPE_MOD_TOTAL_STAT_PERCENTAGE = 0x89,
    AURA_TYPE_MOD_MELEE_HASTE = 0x8A,
    AURA_TYPE_FORCE_REACTION = 0x8B,
    AURA_TYPE_MOD_RANGED_HASTE = 0x8C,
    AURA_TYPE_MOD_RANGED_AMMO_HASTE = 0x8D,
    AURA_TYPE_MOD_BASE_RESISTANCE_PCT = 0x8E,
    AURA_TYPE_MOD_RESISTANCE_EXCLUSIVE = 0x8F,
    AURA_TYPE_SAFE_FALL = 0x90,
    AURA_TYPE_CHARISMA = 0x91,
    AURA_TYPE_PERSUADED = 0x92,
    AURA_TYPE_MECHANIC_IMMUNITY_MASK = 0x93,
    AURA_TYPE_RETAIN_COMBO_POINTS = 0x94,
    AURA_TYPE_RESIST_PUSHBACK = 0x95,
    AURA_TYPE_MOD_SHIELD_BLOCKVALUE_PCT = 0x96,
    AURA_TYPE_TRACK_STEALTHED = 0x97,
    AURA_TYPE_MOD_DETECTED_RANGE = 0x98,
    AURA_TYPE_SPLIT_DAMAGE_FLAT = 0x99,
    AURA_TYPE_MOD_STEALTH_LEVEL = 0x9A,
    AURA_TYPE_MOD_WATER_BREATHING = 0x9B,
    AURA_TYPE_MOD_REPUTATION_GAIN = 0x9C,
    AURA_TYPE_PET_DAMAGE_MULTI = 0x9D,
    AURA_TYPE_MOD_SHIELD_BLOCKVALUE = 0x9E,
    AURA_TYPE_NO_PVP_CREDIT = 0x9F,
    AURA_TYPE_MOD_AOE_AVOIDANCE = 0xA0,
    AURA_TYPE_MOD_HEALTH_REGEN_IN_COMBAT = 0xA1,
    AURA_TYPE_POWER_BURN_MANA = 0xA2,
    AURA_TYPE_MOD_CRIT_DAMAGE_BONUS = 0xA3,
    AURA_TYPE_UNKNOWN164 = 0xA4,
    AURA_TYPE_MELEE_ATTACK_POWER_ATTACKER_BONUS = 0xA5,
    AURA_TYPE_MOD_ATTACK_POWER_PCT = 0xA6,
    AURA_TYPE_MOD_RANGED_ATTACK_POWER_PCT = 0xA7,
    AURA_TYPE_MOD_DAMAGE_DONE_VERSUS = 0xA8,
    AURA_TYPE_MOD_CRIT_PERCENT_VERSUS = 0xA9,
    AURA_TYPE_DETECT_AMORE = 0xAA,
    AURA_TYPE_MOD_SPEED_NOT_STACK = 0xAB,
    AURA_TYPE_MOD_MOUNTED_SPEED_NOT_STACK = 0xAC,
    AURA_TYPE_ALLOW_CHAMPION_SPELLS = 0xAD,
    AURA_TYPE_MOD_SPELL_DAMAGE_OF_STAT_PERCENT = 0xAE,
    AURA_TYPE_MOD_SPELL_HEALING_OF_STAT_PERCENT = 0xAF,
    AURA_TYPE_SPIRIT_OF_REDEMPTION = 0xB0,
    AURA_TYPE_AOE_CHARM = 0xB1,
    AURA_TYPE_MOD_DEBUFF_RESISTANCE = 0xB2,
    AURA_TYPE_MOD_ATTACKER_SPELL_CRIT_CHANCE = 0xB3,
    AURA_TYPE_MOD_FLAT_SPELL_DAMAGE_VERSUS = 0xB4,
    AURA_TYPE_MOD_FLAT_SPELL_CRIT_DAMAGE_VERSUS = 0xB5,
    AURA_TYPE_MOD_RESISTANCE_OF_STAT_PERCENT = 0xB6,
    AURA_TYPE_MOD_CRITICAL_THREAT = 0xB7,
    AURA_TYPE_MOD_ATTACKER_MELEE_HIT_CHANCE = 0xB8,
    AURA_TYPE_MOD_ATTACKER_RANGED_HIT_CHANCE = 0xB9,
    AURA_TYPE_MOD_ATTACKER_SPELL_HIT_CHANCE = 0xBA,
    AURA_TYPE_MOD_ATTACKER_MELEE_CRIT_CHANCE = 0xBB,
    AURA_TYPE_MOD_ATTACKER_RANGED_CRIT_CHANCE = 0xBC,
    AURA_TYPE_MOD_RATING = 0xBD,
    AURA_TYPE_MOD_FACTION_REPUTATION_GAIN = 0xBE,
    AURA_TYPE_USE_NORMAL_MOVEMENT_SPEED = 0xBF,
} e_aura_type;
static const value_string e_aura_type_strings[] =  {
    { AURA_TYPE_NONE, "None" },
    { AURA_TYPE_BIND_SIGHT, "Bind Sight" },
    { AURA_TYPE_MOD_POSSESS, "Mod Possess" },
    { AURA_TYPE_PERIODIC_DAMAGE, "Periodic Damage" },
    { AURA_TYPE_DUMMY, "Dummy" },
    { AURA_TYPE_MOD_CONFUSE, "Mod Confuse" },
    { AURA_TYPE_MOD_CHARM, "Mod Charm" },
    { AURA_TYPE_MOD_FEAR, "Mod Fear" },
    { AURA_TYPE_PERIODIC_HEAL, "Periodic Heal" },
    { AURA_TYPE_MOD_ATTACKSPEED, "Mod Attackspeed" },
    { AURA_TYPE_MOD_THREAT, "Mod Threat" },
    { AURA_TYPE_MOD_TAUNT, "Mod Taunt" },
    { AURA_TYPE_MOD_STUN, "Mod Stun" },
    { AURA_TYPE_MOD_DAMAGE_DONE, "Mod Damage Done" },
    { AURA_TYPE_MOD_DAMAGE_TAKEN, "Mod Damage Taken" },
    { AURA_TYPE_DAMAGE_SHIELD, "Damage Shield" },
    { AURA_TYPE_MOD_STEALTH, "Mod Stealth" },
    { AURA_TYPE_MOD_STEALTH_DETECT, "Mod Stealth Detect" },
    { AURA_TYPE_MOD_INVISIBILITY, "Mod Invisibility" },
    { AURA_TYPE_MOD_INVISIBILITY_DETECTION, "Mod Invisibility Detection" },
    { AURA_TYPE_OBS_MOD_HEALTH, "Obs Mod Health" },
    { AURA_TYPE_OBS_MOD_MANA, "Obs Mod Mana" },
    { AURA_TYPE_MOD_RESISTANCE, "Mod Resistance" },
    { AURA_TYPE_PERIODIC_TRIGGER_SPELL, "Periodic Trigger Spell" },
    { AURA_TYPE_PERIODIC_ENERGIZE, "Periodic Energize" },
    { AURA_TYPE_MOD_PACIFY, "Mod Pacify" },
    { AURA_TYPE_MOD_ROOT, "Mod Root" },
    { AURA_TYPE_MOD_SILENCE, "Mod Silence" },
    { AURA_TYPE_REFLECT_SPELLS, "Reflect Spells" },
    { AURA_TYPE_MOD_STAT, "Mod Stat" },
    { AURA_TYPE_MOD_SKILL, "Mod Skill" },
    { AURA_TYPE_MOD_INCREASE_SPEED, "Mod Increase Speed" },
    { AURA_TYPE_MOD_INCREASE_MOUNTED_SPEED, "Mod Increase Mounted Speed" },
    { AURA_TYPE_MOD_DECREASE_SPEED, "Mod Decrease Speed" },
    { AURA_TYPE_MOD_INCREASE_HEALTH, "Mod Increase Health" },
    { AURA_TYPE_MOD_INCREASE_ENERGY, "Mod Increase Energy" },
    { AURA_TYPE_MOD_SHAPESHIFT, "Mod Shapeshift" },
    { AURA_TYPE_EFFECT_IMMUNITY, "Effect Immunity" },
    { AURA_TYPE_STATE_IMMUNITY, "State Immunity" },
    { AURA_TYPE_SCHOOL_IMMUNITY, "School Immunity" },
    { AURA_TYPE_DAMAGE_IMMUNITY, "Damage Immunity" },
    { AURA_TYPE_DISPEL_IMMUNITY, "Dispel Immunity" },
    { AURA_TYPE_PROC_TRIGGER_SPELL, "Proc Trigger Spell" },
    { AURA_TYPE_PROC_TRIGGER_DAMAGE, "Proc Trigger Damage" },
    { AURA_TYPE_TRACK_CREATURES, "Track Creatures" },
    { AURA_TYPE_TRACK_RESOURCES, "Track Resources" },
    { AURA_TYPE_UNKNOWN46, "Unknown46" },
    { AURA_TYPE_MOD_PARRY_PERCENT, "Mod Parry Percent" },
    { AURA_TYPE_UNKNOWN48, "Unknown48" },
    { AURA_TYPE_MOD_DODGE_PERCENT, "Mod Dodge Percent" },
    { AURA_TYPE_MOD_BLOCK_SKILL, "Mod Block Skill" },
    { AURA_TYPE_MOD_BLOCK_PERCENT, "Mod Block Percent" },
    { AURA_TYPE_MOD_CRIT_PERCENT, "Mod Crit Percent" },
    { AURA_TYPE_PERIODIC_LEECH, "Periodic Leech" },
    { AURA_TYPE_MOD_HIT_CHANCE, "Mod Hit Chance" },
    { AURA_TYPE_MOD_SPELL_HIT_CHANCE, "Mod Spell Hit Chance" },
    { AURA_TYPE_TRANSFORM, "Transform" },
    { AURA_TYPE_MOD_SPELL_CRIT_CHANCE, "Mod Spell Crit Chance" },
    { AURA_TYPE_MOD_INCREASE_SWIM_SPEED, "Mod Increase Swim Speed" },
    { AURA_TYPE_MOD_DAMAGE_DONE_CREATURE, "Mod Damage Done Creature" },
    { AURA_TYPE_MOD_PACIFY_SILENCE, "Mod Pacify Silence" },
    { AURA_TYPE_MOD_SCALE, "Mod Scale" },
    { AURA_TYPE_PERIODIC_HEALTH_FUNNEL, "Periodic Health Funnel" },
    { AURA_TYPE_PERIODIC_MANA_FUNNEL, "Periodic Mana Funnel" },
    { AURA_TYPE_PERIODIC_MANA_LEECH, "Periodic Mana Leech" },
    { AURA_TYPE_MOD_CASTING_SPEED_NOT_STACK, "Mod Casting Speed Not Stack" },
    { AURA_TYPE_FEIGN_DEATH, "Feign Death" },
    { AURA_TYPE_MOD_DISARM, "Mod Disarm" },
    { AURA_TYPE_MOD_STALKED, "Mod Stalked" },
    { AURA_TYPE_SCHOOL_ABSORB, "School Absorb" },
    { AURA_TYPE_EXTRA_ATTACKS, "Extra Attacks" },
    { AURA_TYPE_MOD_SPELL_CRIT_CHANCE_SCHOOL, "Mod Spell Crit Chance School" },
    { AURA_TYPE_MOD_POWER_COST_SCHOOL_PCT, "Mod Power Cost School Pct" },
    { AURA_TYPE_MOD_POWER_COST_SCHOOL, "Mod Power Cost School" },
    { AURA_TYPE_REFLECT_SPELLS_SCHOOL, "Reflect Spells School" },
    { AURA_TYPE_MOD_LANGUAGE, "Mod Language" },
    { AURA_TYPE_FAR_SIGHT, "Far Sight" },
    { AURA_TYPE_MECHANIC_IMMUNITY, "Mechanic Immunity" },
    { AURA_TYPE_MOUNTED, "Mounted" },
    { AURA_TYPE_MOD_DAMAGE_PERCENT_DONE, "Mod Damage Percent Done" },
    { AURA_TYPE_MOD_PERCENT_STAT, "Mod Percent Stat" },
    { AURA_TYPE_SPLIT_DAMAGE_PCT, "Split Damage Pct" },
    { AURA_TYPE_WATER_BREATHING, "Water Breathing" },
    { AURA_TYPE_MOD_BASE_RESISTANCE, "Mod Base Resistance" },
    { AURA_TYPE_MOD_REGEN, "Mod Regen" },
    { AURA_TYPE_MOD_POWER_REGEN, "Mod Power Regen" },
    { AURA_TYPE_CHANNEL_DEATH_ITEM, "Channel Death Item" },
    { AURA_TYPE_MOD_DAMAGE_PERCENT_TAKEN, "Mod Damage Percent Taken" },
    { AURA_TYPE_MOD_HEALTH_REGEN_PERCENT, "Mod Health Regen Percent" },
    { AURA_TYPE_PERIODIC_DAMAGE_PERCENT, "Periodic Damage Percent" },
    { AURA_TYPE_MOD_RESIST_CHANCE, "Mod Resist Chance" },
    { AURA_TYPE_MOD_DETECT_RANGE, "Mod Detect Range" },
    { AURA_TYPE_PREVENTS_FLEEING, "Prevents Fleeing" },
    { AURA_TYPE_MOD_UNATTACKABLE, "Mod Unattackable" },
    { AURA_TYPE_INTERRUPT_REGEN, "Interrupt Regen" },
    { AURA_TYPE_GHOST, "Ghost" },
    { AURA_TYPE_SPELL_MAGNET, "Spell Magnet" },
    { AURA_TYPE_MANA_SHIELD, "Mana Shield" },
    { AURA_TYPE_MOD_SKILL_TALENT, "Mod Skill Talent" },
    { AURA_TYPE_MOD_ATTACK_POWER, "Mod Attack Power" },
    { AURA_TYPE_AURAS_VISIBLE, "Auras Visible" },
    { AURA_TYPE_MOD_RESISTANCE_PCT, "Mod Resistance Pct" },
    { AURA_TYPE_MOD_MELEE_ATTACK_POWER_VERSUS, "Mod Melee Attack Power Versus" },
    { AURA_TYPE_MOD_TOTAL_THREAT, "Mod Total Threat" },
    { AURA_TYPE_WATER_WALK, "Water Walk" },
    { AURA_TYPE_FEATHER_FALL, "Feather Fall" },
    { AURA_TYPE_HOVER, "Hover" },
    { AURA_TYPE_ADD_FLAT_MODIFIER, "Add Flat Modifier" },
    { AURA_TYPE_ADD_PCT_MODIFIER, "Add Pct Modifier" },
    { AURA_TYPE_ADD_TARGET_TRIGGER, "Add Target Trigger" },
    { AURA_TYPE_MOD_POWER_REGEN_PERCENT, "Mod Power Regen Percent" },
    { AURA_TYPE_ADD_CASTER_HIT_TRIGGER, "Add Caster Hit Trigger" },
    { AURA_TYPE_OVERRIDE_CLASS_SCRIPTS, "Override Class Scripts" },
    { AURA_TYPE_MOD_RANGED_DAMAGE_TAKEN, "Mod Ranged Damage Taken" },
    { AURA_TYPE_MOD_RANGED_DAMAGE_TAKEN_PCT, "Mod Ranged Damage Taken Pct" },
    { AURA_TYPE_MOD_HEALING, "Mod Healing" },
    { AURA_TYPE_MOD_REGEN_DURING_COMBAT, "Mod Regen During Combat" },
    { AURA_TYPE_MOD_MECHANIC_RESISTANCE, "Mod Mechanic Resistance" },
    { AURA_TYPE_MOD_HEALING_PCT, "Mod Healing Pct" },
    { AURA_TYPE_SHARE_PET_TRACKING, "Share Pet Tracking" },
    { AURA_TYPE_UNTRACKABLE, "Untrackable" },
    { AURA_TYPE_EMPATHY, "Empathy" },
    { AURA_TYPE_MOD_OFFHAND_DAMAGE_PCT, "Mod Offhand Damage Pct" },
    { AURA_TYPE_MOD_TARGET_RESISTANCE, "Mod Target Resistance" },
    { AURA_TYPE_MOD_RANGED_ATTACK_POWER, "Mod Ranged Attack Power" },
    { AURA_TYPE_MOD_MELEE_DAMAGE_TAKEN, "Mod Melee Damage Taken" },
    { AURA_TYPE_MOD_MELEE_DAMAGE_TAKEN_PCT, "Mod Melee Damage Taken Pct" },
    { AURA_TYPE_RANGED_ATTACK_POWER_ATTACKER_BONUS, "Ranged Attack Power Attacker Bonus" },
    { AURA_TYPE_MOD_POSSESS_PET, "Mod Possess Pet" },
    { AURA_TYPE_MOD_SPEED_ALWAYS, "Mod Speed Always" },
    { AURA_TYPE_MOD_MOUNTED_SPEED_ALWAYS, "Mod Mounted Speed Always" },
    { AURA_TYPE_MOD_RANGED_ATTACK_POWER_VERSUS, "Mod Ranged Attack Power Versus" },
    { AURA_TYPE_MOD_INCREASE_ENERGY_PERCENT, "Mod Increase Energy Percent" },
    { AURA_TYPE_MOD_INCREASE_HEALTH_PERCENT, "Mod Increase Health Percent" },
    { AURA_TYPE_MOD_MANA_REGEN_INTERRUPT, "Mod Mana Regen Interrupt" },
    { AURA_TYPE_MOD_HEALING_DONE, "Mod Healing Done" },
    { AURA_TYPE_MOD_HEALING_DONE_PERCENT, "Mod Healing Done Percent" },
    { AURA_TYPE_MOD_TOTAL_STAT_PERCENTAGE, "Mod Total Stat Percentage" },
    { AURA_TYPE_MOD_MELEE_HASTE, "Mod Melee Haste" },
    { AURA_TYPE_FORCE_REACTION, "Force Reaction" },
    { AURA_TYPE_MOD_RANGED_HASTE, "Mod Ranged Haste" },
    { AURA_TYPE_MOD_RANGED_AMMO_HASTE, "Mod Ranged Ammo Haste" },
    { AURA_TYPE_MOD_BASE_RESISTANCE_PCT, "Mod Base Resistance Pct" },
    { AURA_TYPE_MOD_RESISTANCE_EXCLUSIVE, "Mod Resistance Exclusive" },
    { AURA_TYPE_SAFE_FALL, "Safe Fall" },
    { AURA_TYPE_CHARISMA, "Charisma" },
    { AURA_TYPE_PERSUADED, "Persuaded" },
    { AURA_TYPE_MECHANIC_IMMUNITY_MASK, "Mechanic Immunity Mask" },
    { AURA_TYPE_RETAIN_COMBO_POINTS, "Retain Combo Points" },
    { AURA_TYPE_RESIST_PUSHBACK, "Resist Pushback" },
    { AURA_TYPE_MOD_SHIELD_BLOCKVALUE_PCT, "Mod Shield Blockvalue Pct" },
    { AURA_TYPE_TRACK_STEALTHED, "Track Stealthed" },
    { AURA_TYPE_MOD_DETECTED_RANGE, "Mod Detected Range" },
    { AURA_TYPE_SPLIT_DAMAGE_FLAT, "Split Damage Flat" },
    { AURA_TYPE_MOD_STEALTH_LEVEL, "Mod Stealth Level" },
    { AURA_TYPE_MOD_WATER_BREATHING, "Mod Water Breathing" },
    { AURA_TYPE_MOD_REPUTATION_GAIN, "Mod Reputation Gain" },
    { AURA_TYPE_PET_DAMAGE_MULTI, "Pet Damage Multi" },
    { AURA_TYPE_MOD_SHIELD_BLOCKVALUE, "Mod Shield Blockvalue" },
    { AURA_TYPE_NO_PVP_CREDIT, "No Pvp Credit" },
    { AURA_TYPE_MOD_AOE_AVOIDANCE, "Mod Aoe Avoidance" },
    { AURA_TYPE_MOD_HEALTH_REGEN_IN_COMBAT, "Mod Health Regen In Combat" },
    { AURA_TYPE_POWER_BURN_MANA, "Power Burn Mana" },
    { AURA_TYPE_MOD_CRIT_DAMAGE_BONUS, "Mod Crit Damage Bonus" },
    { AURA_TYPE_UNKNOWN164, "Unknown164" },
    { AURA_TYPE_MELEE_ATTACK_POWER_ATTACKER_BONUS, "Melee Attack Power Attacker Bonus" },
    { AURA_TYPE_MOD_ATTACK_POWER_PCT, "Mod Attack Power Pct" },
    { AURA_TYPE_MOD_RANGED_ATTACK_POWER_PCT, "Mod Ranged Attack Power Pct" },
    { AURA_TYPE_MOD_DAMAGE_DONE_VERSUS, "Mod Damage Done Versus" },
    { AURA_TYPE_MOD_CRIT_PERCENT_VERSUS, "Mod Crit Percent Versus" },
    { AURA_TYPE_DETECT_AMORE, "Detect Amore" },
    { AURA_TYPE_MOD_SPEED_NOT_STACK, "Mod Speed Not Stack" },
    { AURA_TYPE_MOD_MOUNTED_SPEED_NOT_STACK, "Mod Mounted Speed Not Stack" },
    { AURA_TYPE_ALLOW_CHAMPION_SPELLS, "Allow Champion Spells" },
    { AURA_TYPE_MOD_SPELL_DAMAGE_OF_STAT_PERCENT, "Mod Spell Damage Of Stat Percent" },
    { AURA_TYPE_MOD_SPELL_HEALING_OF_STAT_PERCENT, "Mod Spell Healing Of Stat Percent" },
    { AURA_TYPE_SPIRIT_OF_REDEMPTION, "Spirit Of Redemption" },
    { AURA_TYPE_AOE_CHARM, "Aoe Charm" },
    { AURA_TYPE_MOD_DEBUFF_RESISTANCE, "Mod Debuff Resistance" },
    { AURA_TYPE_MOD_ATTACKER_SPELL_CRIT_CHANCE, "Mod Attacker Spell Crit Chance" },
    { AURA_TYPE_MOD_FLAT_SPELL_DAMAGE_VERSUS, "Mod Flat Spell Damage Versus" },
    { AURA_TYPE_MOD_FLAT_SPELL_CRIT_DAMAGE_VERSUS, "Mod Flat Spell Crit Damage Versus" },
    { AURA_TYPE_MOD_RESISTANCE_OF_STAT_PERCENT, "Mod Resistance Of Stat Percent" },
    { AURA_TYPE_MOD_CRITICAL_THREAT, "Mod Critical Threat" },
    { AURA_TYPE_MOD_ATTACKER_MELEE_HIT_CHANCE, "Mod Attacker Melee Hit Chance" },
    { AURA_TYPE_MOD_ATTACKER_RANGED_HIT_CHANCE, "Mod Attacker Ranged Hit Chance" },
    { AURA_TYPE_MOD_ATTACKER_SPELL_HIT_CHANCE, "Mod Attacker Spell Hit Chance" },
    { AURA_TYPE_MOD_ATTACKER_MELEE_CRIT_CHANCE, "Mod Attacker Melee Crit Chance" },
    { AURA_TYPE_MOD_ATTACKER_RANGED_CRIT_CHANCE, "Mod Attacker Ranged Crit Chance" },
    { AURA_TYPE_MOD_RATING, "Mod Rating" },
    { AURA_TYPE_MOD_FACTION_REPUTATION_GAIN, "Mod Faction Reputation Gain" },
    { AURA_TYPE_USE_NORMAL_MOVEMENT_SPEED, "Use Normal Movement Speed" },
    { 0, NULL }
};

typedef enum {
    SPELL_SCHOOL_NORMAL = 0x0,
    SPELL_SCHOOL_HOLY = 0x1,
    SPELL_SCHOOL_FIRE = 0x2,
    SPELL_SCHOOL_NATURE = 0x3,
    SPELL_SCHOOL_FROST = 0x4,
    SPELL_SCHOOL_SHADOW = 0x5,
    SPELL_SCHOOL_ARCANE = 0x6,
} e_spell_school;
static const value_string e_spell_school_strings[] =  {
    { SPELL_SCHOOL_NORMAL, "Normal" },
    { SPELL_SCHOOL_HOLY, "Holy" },
    { SPELL_SCHOOL_FIRE, "Fire" },
    { SPELL_SCHOOL_NATURE, "Nature" },
    { SPELL_SCHOOL_FROST, "Frost" },
    { SPELL_SCHOOL_SHADOW, "Shadow" },
    { SPELL_SCHOOL_ARCANE, "Arcane" },
    { 0, NULL }
};

typedef enum {
    PVP_RANK_NO_RANK = 0x00,
    PVP_RANK_PARIAH = 0x01,
    PVP_RANK_OUTLAW = 0x02,
    PVP_RANK_EXILED = 0x03,
    PVP_RANK_DISHONORED = 0x04,
    PVP_RANK_RANK1 = 0x05,
    PVP_RANK_RANK2 = 0x06,
    PVP_RANK_RANK3 = 0x07,
    PVP_RANK_RANK4 = 0x08,
    PVP_RANK_RANK5 = 0x09,
    PVP_RANK_RANK6 = 0x0A,
    PVP_RANK_RANK7 = 0x0B,
    PVP_RANK_RANK8 = 0x0C,
    PVP_RANK_RANK9 = 0x0D,
    PVP_RANK_RANK10 = 0x0E,
    PVP_RANK_RANK11 = 0x0F,
    PVP_RANK_RANK12 = 0x10,
    PVP_RANK_RANK13 = 0x11,
    PVP_RANK_RANK14 = 0x12,
    PVP_RANK_FACTION_LEADER = 0x13,
} e_pvp_rank;
static const value_string e_pvp_rank_strings[] =  {
    { PVP_RANK_NO_RANK, "No Rank" },
    { PVP_RANK_PARIAH, "Pariah" },
    { PVP_RANK_OUTLAW, "Outlaw" },
    { PVP_RANK_EXILED, "Exiled" },
    { PVP_RANK_DISHONORED, "Dishonored" },
    { PVP_RANK_RANK1, "Rank1" },
    { PVP_RANK_RANK2, "Rank2" },
    { PVP_RANK_RANK3, "Rank3" },
    { PVP_RANK_RANK4, "Rank4" },
    { PVP_RANK_RANK5, "Rank5" },
    { PVP_RANK_RANK6, "Rank6" },
    { PVP_RANK_RANK7, "Rank7" },
    { PVP_RANK_RANK8, "Rank8" },
    { PVP_RANK_RANK9, "Rank9" },
    { PVP_RANK_RANK10, "Rank10" },
    { PVP_RANK_RANK11, "Rank11" },
    { PVP_RANK_RANK12, "Rank12" },
    { PVP_RANK_RANK13, "Rank13" },
    { PVP_RANK_RANK14, "Rank14" },
    { PVP_RANK_FACTION_LEADER, "Faction Leader" },
    { 0, NULL }
};

typedef enum {
    RACE_HUMAN = 0x1,
    RACE_ORC = 0x2,
    RACE_DWARF = 0x3,
    RACE_NIGHT_ELF = 0x4,
    RACE_UNDEAD = 0x5,
    RACE_TAUREN = 0x6,
    RACE_GNOME = 0x7,
    RACE_TROLL = 0x8,
    RACE_GOBLIN = 0x9,
} e_race;
static const value_string e_race_strings[] =  {
    { RACE_HUMAN, "Human" },
    { RACE_ORC, "Orc" },
    { RACE_DWARF, "Dwarf" },
    { RACE_NIGHT_ELF, "Night Elf" },
    { RACE_UNDEAD, "Undead" },
    { RACE_TAUREN, "Tauren" },
    { RACE_GNOME, "Gnome" },
    { RACE_TROLL, "Troll" },
    { RACE_GOBLIN, "Goblin" },
    { 0, NULL }
};

typedef enum {
    CLASS_WARRIOR = 0x1,
    CLASS_PALADIN = 0x2,
    CLASS_HUNTER = 0x3,
    CLASS_ROGUE = 0x4,
    CLASS_PRIEST = 0x5,
    CLASS_SHAMAN = 0x7,
    CLASS_MAGE = 0x8,
    CLASS_WARLOCK = 0x9,
    CLASS_DRUID = 0xB,
} e_class;
static const value_string e_class_strings[] =  {
    { CLASS_WARRIOR, "Warrior" },
    { CLASS_PALADIN, "Paladin" },
    { CLASS_HUNTER, "Hunter" },
    { CLASS_ROGUE, "Rogue" },
    { CLASS_PRIEST, "Priest" },
    { CLASS_SHAMAN, "Shaman" },
    { CLASS_MAGE, "Mage" },
    { CLASS_WARLOCK, "Warlock" },
    { CLASS_DRUID, "Druid" },
    { 0, NULL }
};

typedef enum {
    GENDER_MALE = 0x0,
    GENDER_FEMALE = 0x1,
    GENDER_NONE = 0x2,
} e_gender;
static const value_string e_gender_strings[] =  {
    { GENDER_MALE, "Male" },
    { GENDER_FEMALE, "Female" },
    { GENDER_NONE, "None" },
    { 0, NULL }
};

typedef enum {
    AREA_DUN_MOROGH = 0x001,
    AREA_LONGSHORE = 0x002,
    AREA_BADLANDS = 0x003,
    AREA_BLASTED_LANDS = 0x004,
    AREA_BLACKWATER_COVE = 0x007,
    AREA_SWAMP_OF_SORROWS = 0x008,
    AREA_NORTHSHIRE_VALLEY = 0x009,
    AREA_DUSKWOOD = 0x00A,
    AREA_WETLANDS = 0x00B,
    AREA_ELWYNN_FOREST = 0x00C,
    AREA_THE_WORLD_TREE = 0x00D,
    AREA_DUROTAR = 0x00E,
    AREA_DUSTWALLOW_MARSH = 0x00F,
    AREA_AZSHARA = 0x010,
    AREA_THE_BARRENS = 0x011,
    AREA_CRYSTAL_LAKE = 0x012,
    AREA_ZUL_GURUB0 = 0x013,
    AREA_MOONBROOK = 0x014,
    AREA_KUL_TIRAS = 0x015,
    AREA_PROGRAMMER_ISLE = 0x016,
    AREA_NORTHSHIRE_RIVER = 0x017,
    AREA_NORTHSHIRE_ABBEY = 0x018,
    AREA_BLACKROCK_MOUNTAIN0 = 0x019,
    AREA_LIGHTHOUSE = 0x01A,
    AREA_WESTERN_PLAGUELANDS = 0x01C,
    AREA_NINE = 0x01E,
    AREA_THE_CEMETARY = 0x020,
    AREA_STRANGLETHORN_VALE = 0x021,
    AREA_ECHO_RIDGE_MINE = 0x022,
    AREA_BOOTY_BAY = 0x023,
    AREA_ALTERAC_MOUNTAINS = 0x024,
    AREA_LAKE_NAZFERITI = 0x025,
    AREA_LOCH_MODAN = 0x026,
    AREA_WESTFALL0 = 0x028,
    AREA_DEADWIND_PASS = 0x029,
    AREA_DARKSHIRE = 0x02A,
    AREA_WILD_SHORE = 0x02B,
    AREA_REDRIDGE_MOUNTAINS = 0x02C,
    AREA_ARATHI_HIGHLANDS = 0x02D,
    AREA_BURNING_STEPPES = 0x02E,
    AREA_THE_HINTERLANDS = 0x02F,
    AREA_DEAD_MANS_HOLE = 0x031,
    AREA_SEARING_GORGE = 0x033,
    AREA_THIEVES_CAMP = 0x035,
    AREA_JASPERLODE_MINE = 0x036,
    AREA_VALLEY_OF_HEROES_UNUSED = 0x037,
    AREA_HEROES_VIGIL = 0x038,
    AREA_FARGODEEP_MINE = 0x039,
    AREA_NORTHSHIRE_VINEYARDS = 0x03B,
    AREA_FORESTS_EDGE = 0x03C,
    AREA_THUNDER_FALLS = 0x03D,
    AREA_BRACKWELL_PUMPKIN_PATCH = 0x03E,
    AREA_THE_STONEFIELD_FARM = 0x03F,
    AREA_THE_MACLURE_VINEYARDS = 0x040,
    AREA_ON_MAP_DUNGEON0 = 0x041,
    AREA_ON_MAP_DUNGEON1 = 0x042,
    AREA_ON_MAP_DUNGEON2 = 0x043,
    AREA_LAKE_EVERSTILL = 0x044,
    AREA_LAKESHIRE = 0x045,
    AREA_STONEWATCH = 0x046,
    AREA_STONEWATCH_FALLS = 0x047,
    AREA_THE_DARK_PORTAL = 0x048,
    AREA_THE_TAINTED_SCAR = 0x049,
    AREA_POOL_OF_TEARS = 0x04A,
    AREA_STONARD = 0x04B,
    AREA_FALLOW_SANCTUARY = 0x04C,
    AREA_ANVILMAR = 0x04D,
    AREA_STORMWIND_MOUNTAINS = 0x050,
    AREA_JEFF_NE_QUADRANT_CHANGED = 0x051,
    AREA_JEFF_NW_QUADRANT = 0x052,
    AREA_JEFF_SE_QUADRANT = 0x053,
    AREA_JEFF_SW_QUADRANT = 0x054,
    AREA_TIRISFAL_GLADES = 0x055,
    AREA_STONE_CAIRN_LAKE = 0x056,
    AREA_GOLDSHIRE = 0x057,
    AREA_EASTVALE_LOGGING_CAMP = 0x058,
    AREA_MIRROR_LAKE_ORCHARD = 0x059,
    AREA_TOWER_OF_AZORA = 0x05B,
    AREA_MIRROR_LAKE = 0x05C,
    AREA_VUL_GOL_OGRE_MOUND = 0x05D,
    AREA_RAVEN_HILL = 0x05E,
    AREA_REDRIDGE_CANYONS = 0x05F,
    AREA_TOWER_OF_ILGALAR = 0x060,
    AREA_ALTHERS_MILL = 0x061,
    AREA_RETHBAN_CAVERNS = 0x062,
    AREA_REBEL_CAMP = 0x063,
    AREA_NESINGWARYS_EXPEDITION = 0x064,
    AREA_KURZENS_COMPOUND = 0x065,
    AREA_RUINS_OF_ZUL_KUNDA = 0x066,
    AREA_RUINS_OF_ZUL_MAMWE = 0x067,
    AREA_THE_VILE_REEF = 0x068,
    AREA_MOSH_OGG_OGRE_MOUND = 0x069,
    AREA_THE_STOCKPILE = 0x06A,
    AREA_SALDEANS_FARM = 0x06B,
    AREA_SENTINEL_HILL = 0x06C,
    AREA_FURLBROWS_PUMPKIN_FARM = 0x06D,
    AREA_JANGOLODE_MINE = 0x06F,
    AREA_GOLD_COAST_QUARRY = 0x071,
    AREA_WESTFALL_LIGHTHOUSE = 0x073,
    AREA_MISTY_VALLEY = 0x074,
    AREA_GROMGOL_BASE_CAMP = 0x075,
    AREA_WHELGARS_EXCAVATION_SITE = 0x076,
    AREA_WESTBROOK_GARRISON = 0x078,
    AREA_TRANQUIL_GARDENS_CEMETERY = 0x079,
    AREA_ZUULDAIA_RUINS = 0x07A,
    AREA_BALLAL_RUINS = 0x07B,
    AREA_KALAI_RUINS = 0x07D,
    AREA_TKASHI_RUINS = 0x07E,
    AREA_BALIAMAH_RUINS = 0x07F,
    AREA_ZIATAJAI_RUINS = 0x080,
    AREA_MIZJAH_RUINS = 0x081,
    AREA_SILVERPINE_FOREST = 0x082,
    AREA_KHARANOS = 0x083,
    AREA_COLDRIDGE_VALLEY = 0x084,
    AREA_GNOMEREGAN0 = 0x085,
    AREA_GOL_BOLAR_QUARRY = 0x086,
    AREA_FROSTMANE_HOLD = 0x087,
    AREA_THE_GRIZZLED_DEN = 0x088,
    AREA_BREWNALL_VILLAGE = 0x089,
    AREA_MISTY_PINE_REFUGE = 0x08A,
    AREA_EASTERN_PLAGUELANDS = 0x08B,
    AREA_TELDRASSIL = 0x08D,
    AREA_IRONBANDS_EXCAVATION_SITE = 0x08E,
    AREA_MOGROSH_STRONGHOLD = 0x08F,
    AREA_THELSAMAR = 0x090,
    AREA_ALGAZ_GATE = 0x091,
    AREA_STONEWROUGHT_DAM = 0x092,
    AREA_THE_FARSTRIDER_LODGE = 0x093,
    AREA_DARKSHORE = 0x094,
    AREA_SILVER_STREAM_MINE = 0x095,
    AREA_MENETHIL_HARBOR = 0x096,
    AREA_DESIGNER_ISLAND = 0x097,
    AREA_THE_BULWARK0 = 0x098,
    AREA_RUINS_OF_LORDAERON = 0x099,
    AREA_DEATHKNELL = 0x09A,
    AREA_NIGHT_WEBS_HOLLOW = 0x09B,
    AREA_SOLLIDEN_FARMSTEAD = 0x09C,
    AREA_AGAMAND_MILLS = 0x09D,
    AREA_AGAMAND_FAMILY_CRYPT = 0x09E,
    AREA_BRILL = 0x09F,
    AREA_WHISPERING_GARDENS = 0x0A0,
    AREA_TERRACE_OF_REPOSE = 0x0A1,
    AREA_BRIGHTWATER_LAKE = 0x0A2,
    AREA_GUNTHERS_RETREAT = 0x0A3,
    AREA_GARRENS_HAUNT = 0x0A4,
    AREA_BALNIR_FARMSTEAD = 0x0A5,
    AREA_COLD_HEARTH_MANOR = 0x0A6,
    AREA_CRUSADER_OUTPOST = 0x0A7,
    AREA_THE_NORTH_COAST = 0x0A8,
    AREA_WHISPERING_SHORE = 0x0A9,
    AREA_LORDAMERE_LAKE0 = 0x0AA,
    AREA_FENRIS_ISLE = 0x0AC,
    AREA_FAOLS_REST = 0x0AD,
    AREA_DOLANAAR = 0x0BA,
    AREA_DARNASSUS_UNUSED = 0x0BB,
    AREA_SHADOWGLEN = 0x0BC,
    AREA_STEELGRILLS_DEPOT = 0x0BD,
    AREA_HEARTHGLEN = 0x0BE,
    AREA_NORTHRIDGE_LUMBER_CAMP = 0x0C0,
    AREA_RUINS_OF_ANDORHAL = 0x0C1,
    AREA_SCHOOL_OF_NECROMANCY = 0x0C3,
    AREA_UTHERS_TOMB = 0x0C4,
    AREA_SORROW_HILL = 0x0C5,
    AREA_THE_WEEPING_CAVE = 0x0C6,
    AREA_FELSTONE_FIELD = 0x0C7,
    AREA_DALSONS_TEARS = 0x0C8,
    AREA_GAHRRONS_WITHERING = 0x0C9,
    AREA_THE_WRITHING_HAUNT = 0x0CA,
    AREA_MARDENHOLDE_KEEP = 0x0CB,
    AREA_PYREWOOD_VILLAGE = 0x0CC,
    AREA_DUN_MODR = 0x0CD,
    AREA_WESTFALL1 = 0x0CE,
    AREA_THE_GREAT_SEA0 = 0x0CF,
    AREA_UNUSED_IRONCLADCOVE = 0x0D0,
    AREA_SHADOWFANG_KEEP0 = 0x0D1,
    AREA_ON_MAP_DUNGEON3 = 0x0D2,
    AREA_ICEFLOW_LAKE = 0x0D3,
    AREA_HELMS_BED_LAKE = 0x0D4,
    AREA_DEEP_ELEM_MINE = 0x0D5,
    AREA_THE_GREAT_SEA1 = 0x0D6,
    AREA_MULGORE = 0x0D7,
    AREA_ALEXSTON_FARMSTEAD = 0x0DB,
    AREA_RED_CLOUD_MESA = 0x0DC,
    AREA_CAMP_NARACHE = 0x0DD,
    AREA_BLOODHOOF_VILLAGE = 0x0DE,
    AREA_STONEBULL_LAKE = 0x0DF,
    AREA_RAVAGED_CARAVAN = 0x0E0,
    AREA_RED_ROCKS = 0x0E1,
    AREA_THE_SKITTERING_DARK = 0x0E2,
    AREA_VALGANS_FIELD = 0x0E3,
    AREA_THE_SEPULCHER = 0x0E4,
    AREA_OLSENS_FARTHING = 0x0E5,
    AREA_THE_GREYMANE_WALL = 0x0E6,
    AREA_BERENS_PERIL = 0x0E7,
    AREA_THE_DAWNING_ISLES = 0x0E8,
    AREA_AMBERMILL = 0x0E9,
    AREA_FENRIS_KEEP = 0x0EB,
    AREA_SHADOWFANG_KEEP1 = 0x0EC,
    AREA_THE_DECREPIT_FERRY = 0x0ED,
    AREA_MALDENS_ORCHARD = 0x0EE,
    AREA_THE_IVAR_PATCH = 0x0EF,
    AREA_THE_DEAD_FIELD = 0x0F0,
    AREA_THE_ROTTING_ORCHARD = 0x0F1,
    AREA_BRIGHTWOOD_GROVE = 0x0F2,
    AREA_FORLORN_ROWE = 0x0F3,
    AREA_THE_WHIPPLE_ESTATE = 0x0F4,
    AREA_THE_YORGEN_FARMSTEAD = 0x0F5,
    AREA_THE_CAULDRON = 0x0F6,
    AREA_GRIMESILT_DIG_SITE = 0x0F7,
    AREA_DREADMAUL_ROCK = 0x0F9,
    AREA_RUINS_OF_THAURISSAN = 0x0FA,
    AREA_FLAME_CREST = 0x0FB,
    AREA_BLACKROCK_STRONGHOLD = 0x0FC,
    AREA_THE_PILLAR_OF_ASH = 0x0FD,
    AREA_BLACKROCK_MOUNTAIN1 = 0x0FE,
    AREA_ALTAR_OF_STORMS0 = 0x0FF,
    AREA_ALDRASSIL = 0x100,
    AREA_SHADOWTHREAD_CAVE = 0x101,
    AREA_FEL_ROCK = 0x102,
    AREA_LAKE_AL_AMETH = 0x103,
    AREA_STARBREEZE_VILLAGE = 0x104,
    AREA_GNARLPINE_HOLD = 0x105,
    AREA_BANETHIL_BARROW_DEN = 0x106,
    AREA_THE_CLEFT = 0x107,
    AREA_THE_ORACLE_GLADE = 0x108,
    AREA_WELLSPRING_RIVER = 0x109,
    AREA_WELLSPRING_LAKE = 0x10A,
    AREA_HILLSBRAD_FOOTHILLS = 0x10B,
    AREA_AZSHARA_CRATER = 0x10C,
    AREA_DUN_ALGAZ0 = 0x10D,
    AREA_SOUTHSHORE0 = 0x10F,
    AREA_TARREN_MILL0 = 0x110,
    AREA_DURNHOLDE_KEEP0 = 0x113,
    AREA_UNUSED_STONEWROUGHT_PASS = 0x114,
    AREA_THE_FOOTHILL_CAVERNS = 0x115,
    AREA_LORDAMERE_INTERNMENT_CAMP = 0x116,
    AREA_DALARAN = 0x117,
    AREA_STRAHNBRAD = 0x118,
    AREA_RUINS_OF_ALTERAC = 0x119,
    AREA_CRUSHRIDGE_HOLD = 0x11A,
    AREA_SLAUGHTER_HOLLOW = 0x11B,
    AREA_THE_UPLANDS = 0x11C,
    AREA_SOUTHPOINT_TOWER0 = 0x11D,
    AREA_HILLSBRAD_FIELDS0 = 0x11E,
    AREA_HILLSBRAD = 0x11F,
    AREA_AZURELODE_MINE0 = 0x120,
    AREA_NETHANDER_STEAD0 = 0x121,
    AREA_DUN_GAROK0 = 0x122,
    AREA_THORADINS_WALL0 = 0x125,
    AREA_EASTERN_STRAND0 = 0x126,
    AREA_WESTERN_STRAND0 = 0x127,
    AREA_SOUTH_SEAS_UNUSED = 0x128,
    AREA_JAGUERO_ISLE = 0x129,
    AREA_BARADIN_BAY = 0x12A,
    AREA_MENETHIL_BAY = 0x12B,
    AREA_MISTY_REED_STRAND = 0x12C,
    AREA_THE_SAVAGE_COAST = 0x12D,
    AREA_THE_CRYSTAL_SHORE = 0x12E,
    AREA_SHELL_BEACH = 0x12F,
    AREA_NORTH_TIDES_RUN = 0x131,
    AREA_SOUTH_TIDES_RUN = 0x132,
    AREA_THE_OVERLOOK_CLIFFS = 0x133,
    AREA_THE_FORBIDDING_SEA0 = 0x134,
    AREA_IRONBEARDS_TOMB = 0x135,
    AREA_CRYSTALVEIN_MINE = 0x136,
    AREA_RUINS_OF_ABORAZ = 0x137,
    AREA_JANEIROS_POINT = 0x138,
    AREA_NORTHFOLD_MANOR = 0x139,
    AREA_GO_SHEK_FARM = 0x13A,
    AREA_DABYRIES_FARMSTEAD = 0x13B,
    AREA_BOULDERFIST_HALL = 0x13C,
    AREA_WITHERBARK_VILLAGE = 0x13D,
    AREA_DRYWHISKER_GORGE = 0x13E,
    AREA_REFUGE_POINTE = 0x140,
    AREA_HAMMERFALL = 0x141,
    AREA_BLACKWATER_SHIPWRECKS = 0x142,
    AREA_O_BREENS_CAMP = 0x143,
    AREA_STROMGARDE_KEEP = 0x144,
    AREA_THE_TOWER_OF_ARATHOR = 0x145,
    AREA_THE_SANCTUM = 0x146,
    AREA_FALDIRS_COVE = 0x147,
    AREA_THE_DROWNED_REEF = 0x148,
    AREA_THANDOL_SPAN0 = 0x14A,
    AREA_ASHENVALE = 0x14B,
    AREA_THE_GREAT_SEA2 = 0x14C,
    AREA_CIRCLE_OF_EAST_BINDING = 0x14D,
    AREA_CIRCLE_OF_WEST_BINDING = 0x14E,
    AREA_CIRCLE_OF_INNER_BINDING = 0x14F,
    AREA_CIRCLE_OF_OUTER_BINDING = 0x150,
    AREA_APOCRYPHANS_REST = 0x151,
    AREA_ANGOR_FORTRESS = 0x152,
    AREA_LETHLOR_RAVINE = 0x153,
    AREA_KARGATH = 0x154,
    AREA_CAMP_KOSH = 0x155,
    AREA_CAMP_BOFF = 0x156,
    AREA_CAMP_WURG = 0x157,
    AREA_CAMP_CAGG = 0x158,
    AREA_AGMONDS_END = 0x159,
    AREA_HAMMERTOES_DIGSITE = 0x15A,
    AREA_DUSTBELCH_GROTTO = 0x15B,
    AREA_AERIE_PEAK = 0x15C,
    AREA_WILDHAMMER_KEEP = 0x15D,
    AREA_QUEL_DANIL_LODGE = 0x15E,
    AREA_SKULK_ROCK = 0x15F,
    AREA_ZUNWATHA = 0x160,
    AREA_SHADRA_ALOR = 0x161,
    AREA_JINTHA_ALOR = 0x162,
    AREA_THE_ALTAR_OF_ZUL = 0x163,
    AREA_SERADANE = 0x164,
    AREA_FERALAS = 0x165,
    AREA_BRAMBLEBLADE_RAVINE = 0x166,
    AREA_BAEL_MODAN = 0x167,
    AREA_THE_VENTURE_CO_MINE = 0x168,
    AREA_FELWOOD = 0x169,
    AREA_RAZOR_HILL = 0x16A,
    AREA_VALLEY_OF_TRIALS = 0x16B,
    AREA_THE_DEN = 0x16C,
    AREA_BURNING_BLADE_COVEN = 0x16D,
    AREA_KOLKAR_CRAG = 0x16E,
    AREA_SENJIN_VILLAGE = 0x16F,
    AREA_ECHO_ISLES = 0x170,
    AREA_THUNDER_RIDGE = 0x171,
    AREA_DRYGULCH_RAVINE = 0x172,
    AREA_DUSTWIND_CAVE = 0x173,
    AREA_TIRAGARDE_KEEP = 0x174,
    AREA_SCUTTLE_COAST = 0x175,
    AREA_BLADEFIST_BAY = 0x176,
    AREA_DEADEYE_SHORE = 0x177,
    AREA_SOUTHFURY_RIVER0 = 0x179,
    AREA_CAMP_TAURAJO = 0x17A,
    AREA_FAR_WATCH_POST = 0x17B,
    AREA_THE_CROSSROADS = 0x17C,
    AREA_BOULDER_LODE_MINE = 0x17D,
    AREA_THE_SLUDGE_FEN = 0x17E,
    AREA_THE_DRY_HILLS = 0x17F,
    AREA_DREADMIST_PEAK = 0x180,
    AREA_NORTHWATCH_HOLD = 0x181,
    AREA_THE_FORGOTTEN_POOLS = 0x182,
    AREA_LUSHWATER_OASIS = 0x183,
    AREA_THE_STAGNANT_OASIS = 0x184,
    AREA_FIELD_OF_GIANTS = 0x186,
    AREA_THE_MERCHANT_COAST = 0x187,
    AREA_RATCHET = 0x188,
    AREA_DARKSPEAR_STRAND = 0x189,
    AREA_DARROWMERE_LAKE_UNUSED = 0x18A,
    AREA_CAER_DARROW_UNUSED = 0x18B,
    AREA_WINTERHOOF_WATER_WELL = 0x18C,
    AREA_THUNDERHORN_WATER_WELL = 0x18D,
    AREA_WILDMANE_WATER_WELL = 0x18E,
    AREA_SKYLINE_RIDGE = 0x18F,
    AREA_THOUSAND_NEEDLES = 0x190,
    AREA_THE_TIDUS_STAIR = 0x191,
    AREA_SHADY_REST_INN = 0x193,
    AREA_BAELDUN_DIGSITE = 0x194,
    AREA_DESOLACE = 0x195,
    AREA_STONETALON_MOUNTAINS = 0x196,
    AREA_ORGRIMMAR_UNUSED = 0x197,
    AREA_GILLIJIMS_ISLE = 0x198,
    AREA_ISLAND_OF_DOCTOR_LAPIDIS = 0x199,
    AREA_RAZORWIND_CANYON = 0x19A,
    AREA_BATHRANS_HAUNT = 0x19B,
    AREA_THE_RUINS_OF_ORDIL_ARAN = 0x19C,
    AREA_MAESTRAS_POST = 0x19D,
    AREA_THE_ZORAM_STRAND = 0x19E,
    AREA_ASTRANAAR = 0x19F,
    AREA_THE_SHRINE_OF_AESSINA = 0x1A0,
    AREA_FIRE_SCAR_SHRINE = 0x1A1,
    AREA_THE_RUINS_OF_STARDUST = 0x1A2,
    AREA_THE_HOWLING_VALE = 0x1A3,
    AREA_SILVERWIND_REFUGE = 0x1A4,
    AREA_MYSTRAL_LAKE = 0x1A5,
    AREA_FALLEN_SKY_LAKE = 0x1A6,
    AREA_IRIS_LAKE = 0x1A8,
    AREA_MOONWELL = 0x1A9,
    AREA_RAYNEWOOD_RETREAT = 0x1AA,
    AREA_THE_SHADY_NOOK = 0x1AB,
    AREA_NIGHT_RUN = 0x1AC,
    AREA_XAVIAN = 0x1AD,
    AREA_SATYRNAAR = 0x1AE,
    AREA_SPLINTERTREE_POST = 0x1AF,
    AREA_THE_DOR_DANIL_BARROW_DEN = 0x1B0,
    AREA_FALFARREN_RIVER = 0x1B1,
    AREA_FELFIRE_HILL = 0x1B2,
    AREA_DEMON_FALL_CANYON = 0x1B3,
    AREA_DEMON_FALL_RIDGE = 0x1B4,
    AREA_WARSONG_LUMBER_CAMP = 0x1B5,
    AREA_BOUGH_SHADOW = 0x1B6,
    AREA_THE_SHIMMERING_FLATS = 0x1B7,
    AREA_TANARIS = 0x1B8,
    AREA_LAKE_FALATHIM = 0x1B9,
    AREA_AUBERDINE = 0x1BA,
    AREA_RUINS_OF_MATHYSTRA = 0x1BB,
    AREA_TOWER_OF_ALTHALAXX = 0x1BC,
    AREA_CLIFFSPRING_FALLS = 0x1BD,
    AREA_BASHAL_ARAN = 0x1BE,
    AREA_AMETH_ARAN = 0x1BF,
    AREA_GROVE_OF_THE_ANCIENTS = 0x1C0,
    AREA_THE_MASTERS_GLAIVE = 0x1C1,
    AREA_REMTRAVELS_EXCAVATION = 0x1C2,
    AREA_MISTS_EDGE = 0x1C4,
    AREA_THE_LONG_WASH = 0x1C5,
    AREA_WILDBEND_RIVER = 0x1C6,
    AREA_BLACKWOOD_DEN = 0x1C7,
    AREA_CLIFFSPRING_RIVER = 0x1C8,
    AREA_THE_VEILED_SEA0 = 0x1C9,
    AREA_GOLD_ROAD = 0x1CA,
    AREA_SCARLET_WATCH_POST = 0x1CB,
    AREA_SUN_ROCK_RETREAT = 0x1CC,
    AREA_WINDSHEAR_CRAG = 0x1CD,
    AREA_CRAGPOOL_LAKE = 0x1CF,
    AREA_MIRKFALLON_LAKE = 0x1D0,
    AREA_THE_CHARRED_VALE = 0x1D1,
    AREA_VALLEY_OF_THE_BLOODFURIES = 0x1D2,
    AREA_STONETALON_PEAK = 0x1D3,
    AREA_THE_TALON_DEN = 0x1D4,
    AREA_GREATWOOD_VALE = 0x1D5,
    AREA_THUNDER_BLUFF_UNUSED = 0x1D6,
    AREA_BRAVE_WIND_MESA = 0x1D7,
    AREA_FIRE_STONE_MESA = 0x1D8,
    AREA_MANTLE_ROCK = 0x1D9,
    AREA_HUNTER_RISE_UNUSED = 0x1DA,
    AREA_SPIRIT_RISE_UNUSED = 0x1DB,
    AREA_ELDER_RISE_UNUSED = 0x1DC,
    AREA_RUINS_OF_JUBUWAL = 0x1DD,
    AREA_POOLS_OF_ARLITHRIEN = 0x1DE,
    AREA_THE_RUSTMAUL_DIG_SITE = 0x1DF,
    AREA_CAMP_ETHOK = 0x1E0,
    AREA_SPLITHOOF_CRAG = 0x1E1,
    AREA_HIGHPERCH = 0x1E2,
    AREA_THE_SCREECHING_CANYON = 0x1E3,
    AREA_FREEWIND_POST = 0x1E4,
    AREA_THE_GREAT_LIFT0 = 0x1E5,
    AREA_GALAK_HOLD = 0x1E6,
    AREA_ROGUEFEATHER_DEN = 0x1E7,
    AREA_THE_WEATHERED_NOOK = 0x1E8,
    AREA_THALANAAR = 0x1E9,
    AREA_UN_GORO_CRATER = 0x1EA,
    AREA_RAZORFEN_KRAUL0 = 0x1EB,
    AREA_RAVEN_HILL_CEMETERY = 0x1EC,
    AREA_MOONGLADE = 0x1ED,
    AREA_DELETE_ME0 = 0x1EF,
    AREA_BRACKENWALL_VILLAGE = 0x1F0,
    AREA_SWAMPLIGHT_MANOR = 0x1F1,
    AREA_BLOODFEN_BURROW = 0x1F2,
    AREA_DARKMIST_CAVERN = 0x1F3,
    AREA_MOGGLE_POINT = 0x1F4,
    AREA_BEEZILS_WRECK = 0x1F5,
    AREA_WITCH_HILL = 0x1F6,
    AREA_SENTRY_POINT = 0x1F7,
    AREA_NORTH_POINT_TOWER = 0x1F8,
    AREA_WEST_POINT_TOWER = 0x1F9,
    AREA_LOST_POINT = 0x1FA,
    AREA_BLUEFEN = 0x1FB,
    AREA_STONEMAUL_RUINS = 0x1FC,
    AREA_THE_DEN_OF_FLAME = 0x1FD,
    AREA_THE_DRAGONMURK = 0x1FE,
    AREA_WYRMBOG = 0x1FF,
    AREA_ONYXIAS_LAIR_UNUSED = 0x200,
    AREA_THERAMORE_ISLE = 0x201,
    AREA_FOOTHOLD_CITADEL = 0x202,
    AREA_IRONCLAD_PRISON = 0x203,
    AREA_DUSTWALLOW_BAY = 0x204,
    AREA_TIDEFURY_COVE = 0x205,
    AREA_DREADMURK_SHORE = 0x206,
    AREA_ADDLES_STEAD = 0x218,
    AREA_FIRE_PLUME_RIDGE = 0x219,
    AREA_LAKKARI_TAR_PITS = 0x21A,
    AREA_TERROR_RUN = 0x21B,
    AREA_THE_SLITHERING_SCAR = 0x21C,
    AREA_MARSHALS_REFUGE = 0x21D,
    AREA_FUNGAL_ROCK = 0x21E,
    AREA_GOLAKKA_HOT_SPRINGS = 0x21F,
    AREA_THE_LOCH = 0x22C,
    AREA_BEGGARS_HAUNT = 0x240,
    AREA_KODO_GRAVEYARD = 0x254,
    AREA_GHOST_WALKER_POST = 0x255,
    AREA_SARTHERIS_STRAND = 0x256,
    AREA_THUNDER_AXE_FORTRESS = 0x257,
    AREA_BOLGANS_HOLE = 0x258,
    AREA_MANNOROC_COVEN = 0x25A,
    AREA_SARGERON = 0x25B,
    AREA_MAGRAM_VILLAGE = 0x25C,
    AREA_GELKIS_VILLAGE = 0x25E,
    AREA_VALLEY_OF_SPEARS = 0x25F,
    AREA_NIJELS_POINT = 0x260,
    AREA_KOLKAR_VILLAGE = 0x261,
    AREA_HYJAL = 0x268,
    AREA_WINTERSPRING = 0x26A,
    AREA_BLACKWOLF_RIVER = 0x27C,
    AREA_KODO_ROCK = 0x27D,
    AREA_HIDDEN_PATH = 0x27E,
    AREA_SPIRIT_ROCK = 0x27F,
    AREA_SHRINE_OF_THE_DORMANT_FLAME = 0x280,
    AREA_LAKE_ELUNEARA = 0x290,
    AREA_THE_HARBORAGE = 0x291,
    AREA_OUTLAND = 0x2A4,
    AREA_CRAFTSMENS_TERRACE_UNUSED = 0x2B8,
    AREA_TRADESMENS_TERRACE_UNUSED = 0x2B9,
    AREA_THE_TEMPLE_GARDENS_UNUSED = 0x2BA,
    AREA_TEMPLE_OF_ELUNE_UNUSED = 0x2BB,
    AREA_CENARION_ENCLAVE_UNUSED = 0x2BC,
    AREA_WARRIORS_TERRACE_UNUSED = 0x2BD,
    AREA_RUTTHERAN_VILLAGE = 0x2BE,
    AREA_IRONBANDS_COMPOUND = 0x2CC,
    AREA_THE_STOCKADE = 0x2CD,
    AREA_WAILING_CAVERNS = 0x2CE,
    AREA_BLACKFATHOM_DEEPS0 = 0x2CF,
    AREA_FRAY_ISLAND = 0x2D0,
    AREA_GNOMEREGAN1 = 0x2D1,
    AREA_RAZORFEN_DOWNS0 = 0x2D2,
    AREA_BANETHIL_HOLLOW = 0x2E0,
    AREA_SCARLET_MONASTERY = 0x31C,
    AREA_JERODS_LANDING = 0x31D,
    AREA_RIDGEPOINT_TOWER = 0x31E,
    AREA_THE_DARKENED_BANK = 0x31F,
    AREA_COLDRIDGE_PASS = 0x320,
    AREA_CHILL_BREEZE_VALLEY = 0x321,
    AREA_SHIMMER_RIDGE = 0x322,
    AREA_AMBERSTILL_RANCH = 0x323,
    AREA_THE_TUNDRID_HILLS = 0x324,
    AREA_SOUTH_GATE_PASS0 = 0x325,
    AREA_SOUTH_GATE_OUTPOST = 0x326,
    AREA_NORTH_GATE_PASS0 = 0x327,
    AREA_NORTH_GATE_OUTPOST = 0x328,
    AREA_GATES_OF_IRONFORGE = 0x329,
    AREA_STILLWATER_POND = 0x32A,
    AREA_NIGHTMARE_VALE = 0x32B,
    AREA_VENOMWEB_VALE = 0x32C,
    AREA_THE_BULWARK1 = 0x32D,
    AREA_SOUTHFURY_RIVER1 = 0x32E,
    AREA_SOUTHFURY_RIVER2 = 0x32F,
    AREA_RAZORMANE_GROUNDS = 0x330,
    AREA_SKULL_ROCK = 0x331,
    AREA_PALEMANE_ROCK = 0x332,
    AREA_WINDFURY_RIDGE = 0x333,
    AREA_THE_GOLDEN_PLAINS = 0x334,
    AREA_THE_ROLLING_PLAINS = 0x335,
    AREA_DUN_ALGAZ1 = 0x344,
    AREA_DUN_ALGAZ2 = 0x345,
    AREA_NORTH_GATE_PASS1 = 0x346,
    AREA_SOUTH_GATE_PASS1 = 0x347,
    AREA_TWILIGHT_GROVE = 0x358,
    AREA_GM_ISLAND = 0x36C,
    AREA_DELETE_ME1 = 0x36D,
    AREA_SOUTHFURY_RIVER3 = 0x36E,
    AREA_SOUTHFURY_RIVER4 = 0x36F,
    AREA_THANDOL_SPAN1 = 0x370,
    AREA_THANDOL_SPAN2 = 0x371,
    AREA_PURGATION_ISLE = 0x380,
    AREA_THE_JANSEN_STEAD = 0x394,
    AREA_THE_DEAD_ACRE = 0x395,
    AREA_THE_MOLSEN_FARM = 0x396,
    AREA_STENDELS_POND = 0x397,
    AREA_THE_DAGGER_HILLS = 0x398,
    AREA_DEMONTS_PLACE = 0x399,
    AREA_THE_DUST_PLAINS = 0x39A,
    AREA_STONESPLINTER_VALLEY = 0x39B,
    AREA_VALLEY_OF_KINGS = 0x39C,
    AREA_ALGAZ_STATION = 0x39D,
    AREA_BUCKLEBREE_FARM = 0x39E,
    AREA_THE_SHINING_STRAND = 0x39F,
    AREA_NORTH_TIDES_HOLLOW = 0x3A0,
    AREA_GRIZZLEPAW_RIDGE = 0x3A8,
    AREA_THE_VERDANT_FIELDS = 0x3BC,
    AREA_GADGETZAN = 0x3D0,
    AREA_STEAMWHEEDLE_PORT = 0x3D1,
    AREA_ZUL_FARRAK0 = 0x3D2,
    AREA_SANDSORROW_WATCH = 0x3D3,
    AREA_THISTLESHRUB_VALLEY = 0x3D4,
    AREA_THE_GAPING_CHASM = 0x3D5,
    AREA_THE_NOXIOUS_LAIR = 0x3D6,
    AREA_DUNEMAUL_COMPOUND = 0x3D7,
    AREA_EASTMOON_RUINS = 0x3D8,
    AREA_WATERSPRING_FIELD = 0x3D9,
    AREA_ZALASHJIS_DEN = 0x3DA,
    AREA_LANDS_END_BEACH = 0x3DB,
    AREA_WAVESTRIDER_BEACH = 0x3DC,
    AREA_ULDUM = 0x3DD,
    AREA_VALLEY_OF_THE_WATCHERS = 0x3DE,
    AREA_GUNSTANS_POST = 0x3DF,
    AREA_SOUTHMOON_RUINS = 0x3E0,
    AREA_RENDERS_CAMP = 0x3E4,
    AREA_RENDERS_VALLEY = 0x3E5,
    AREA_RENDERS_ROCK = 0x3E6,
    AREA_STONEWATCH_TOWER = 0x3E7,
    AREA_GALARDELL_VALLEY = 0x3E8,
    AREA_LAKERIDGE_HIGHWAY = 0x3E9,
    AREA_THREE_CORNERS = 0x3EA,
    AREA_DIREFORGE_HILL = 0x3F8,
    AREA_RAPTOR_RIDGE = 0x3F9,
    AREA_BLACK_CHANNEL_MARSH = 0x3FA,
    AREA_THE_GREEN_BELT0 = 0x3FB,
    AREA_MOSSHIDE_FEN = 0x3FC,
    AREA_THELGEN_ROCK = 0x3FD,
    AREA_BLUEGILL_MARSH = 0x3FE,
    AREA_SALTSPRAY_GLEN = 0x3FF,
    AREA_SUNDOWN_MARSH = 0x400,
    AREA_THE_GREEN_BELT1 = 0x401,
    AREA_ANGERFANG_ENCAMPMENT = 0x40C,
    AREA_GRIM_BATOL = 0x40D,
    AREA_DRAGONMAW_GATES = 0x40E,
    AREA_THE_LOST_FLEET = 0x40F,
    AREA_DARROW_HILL0 = 0x420,
    AREA_THORADINS_WALL1 = 0x421,
    AREA_WEBWINDER_PATH = 0x434,
    AREA_THE_HUSHED_BANK = 0x449,
    AREA_MANOR_MISTMANTLE = 0x44A,
    AREA_CAMP_MOJACHE = 0x44B,
    AREA_GRIMTOTEM_COMPOUND = 0x44C,
    AREA_THE_WRITHING_DEEP = 0x44D,
    AREA_WILDWIND_LAKE = 0x44E,
    AREA_GORDUNNI_OUTPOST = 0x44F,
    AREA_MOK_GORDUN = 0x450,
    AREA_FERAL_SCAR_VALE = 0x451,
    AREA_FRAYFEATHER_HIGHLANDS = 0x452,
    AREA_IDLEWIND_LAKE = 0x453,
    AREA_THE_FORGOTTEN_COAST = 0x454,
    AREA_EAST_PILLAR = 0x455,
    AREA_WEST_PILLAR = 0x456,
    AREA_DREAM_BOUGH = 0x457,
    AREA_JADEMIR_LAKE = 0x458,
    AREA_ONEIROS = 0x459,
    AREA_RUINS_OF_RAVENWIND = 0x45A,
    AREA_RAGE_SCAR_HOLD = 0x45B,
    AREA_FEATHERMOON_STRONGHOLD = 0x45C,
    AREA_RUINS_OF_SOLARSAL = 0x45D,
    AREA_LOWER_WILDS_UNUSED = 0x45E,
    AREA_THE_TWIN_COLOSSALS = 0x45F,
    AREA_SARDOR_ISLE = 0x460,
    AREA_ISLE_OF_DREAD = 0x461,
    AREA_HIGH_WILDERNESS = 0x470,
    AREA_LOWER_WILDS = 0x471,
    AREA_SOUTHERN_BARRENS = 0x484,
    AREA_SOUTHERN_GOLD_ROAD = 0x485,
    AREA_ZUL_FARRAK1 = 0x498,
    AREA_UNUSED_ALCAZ_ISLAND = 0x4AC,
    AREA_TIMBERMAW_HOLD0 = 0x4C0,
    AREA_VANNDIR_ENCAMPMENT = 0x4C1,
    AREA_TEST_AZSHARA = 0x4C2,
    AREA_LEGASH_ENCAMPMENT = 0x4C3,
    AREA_THALASSIAN_BASE_CAMP = 0x4C4,
    AREA_RUINS_OF_ELDARATH = 0x4C5,
    AREA_HETAERAS_CLUTCH = 0x4C6,
    AREA_TEMPLE_OF_ZIN_MALOR = 0x4C7,
    AREA_BEARS_HEAD = 0x4C8,
    AREA_URSOLAN = 0x4C9,
    AREA_TEMPLE_OF_ARKKORAN = 0x4CA,
    AREA_BAY_OF_STORMS = 0x4CB,
    AREA_THE_SHATTERED_STRAND = 0x4CC,
    AREA_TOWER_OF_ELDARA = 0x4CD,
    AREA_JAGGED_REEF = 0x4CE,
    AREA_SOUTHRIDGE_BEACH = 0x4CF,
    AREA_RAVENCREST_MONUMENT = 0x4D0,
    AREA_FORLORN_RIDGE = 0x4D1,
    AREA_LAKE_MENNAR = 0x4D2,
    AREA_SHADOWSONG_SHRINE = 0x4D3,
    AREA_HALDARR_ENCAMPMENT = 0x4D4,
    AREA_VALORMOK = 0x4D5,
    AREA_THE_RUINED_REACHES = 0x4E8,
    AREA_THE_TALONDEEP_PATH0 = 0x4FC,
    AREA_THE_TALONDEEP_PATH1 = 0x4FD,
    AREA_ROCKTUSK_FARM = 0x510,
    AREA_JAGGEDSWINE_FARM = 0x511,
    AREA_RAZORFEN_DOWNS1 = 0x524,
    AREA_LOST_RIGGER_COVE = 0x538,
    AREA_ULDAMAN0 = 0x539,
    AREA_LORDAMERE_LAKE1 = 0x53A,
    AREA_LORDAMERE_LAKE2 = 0x53B,
    AREA_GALLOWS_CORNER = 0x54D,
    AREA_SILITHUS = 0x561,
    AREA_EMERALD_FOREST = 0x575,
    AREA_SUNKEN_TEMPLE = 0x589,
    AREA_DREADMAUL_HOLD = 0x59D,
    AREA_NETHERGARDE_KEEP = 0x59E,
    AREA_DREADMAUL_POST = 0x59F,
    AREA_SERPENTS_COIL = 0x5A0,
    AREA_ALTAR_OF_STORMS1 = 0x5A1,
    AREA_FIREWATCH_RIDGE = 0x5A2,
    AREA_THE_SLAG_PIT = 0x5A3,
    AREA_THE_SEA_OF_CINDERS = 0x5A4,
    AREA_BLACKROCK_MOUNTAIN2 = 0x5A5,
    AREA_THORIUM_POINT = 0x5A6,
    AREA_GARRISON_ARMORY = 0x5B1,
    AREA_THE_TEMPLE_OF_ATAL_HAKKAR = 0x5C5,
    AREA_UNDERCITY = 0x5D9,
    AREA_ULDAMAN1 = 0x5ED,
    AREA_NOT_USED_DEADMINES = 0x5EE,
    AREA_STORMWIND_CITY = 0x5EF,
    AREA_IRONFORGE = 0x601,
    AREA_SPLITHOOF_HOLD = 0x615,
    AREA_THE_CAPE_OF_STRANGLETHORN = 0x629,
    AREA_SOUTHERN_SAVAGE_COAST = 0x62A,
    AREA_UNUSED_THE_DEADMINES_002 = 0x62B,
    AREA_UNUSED_IRONCLAD_COVE_003 = 0x62C,
    AREA_THE_DEADMINES = 0x62D,
    AREA_IRONCLAD_COVE = 0x62E,
    AREA_BLACKROCK_SPIRE = 0x62F,
    AREA_BLACKROCK_DEPTHS = 0x630,
    AREA_RAPTOR_GROUNDS_UNUSED = 0x63D,
    AREA_GROLDOM_FARM_UNUSED = 0x63E,
    AREA_MORSHAN_BASE_CAMP = 0x63F,
    AREA_HONORS_STAND_UNUSED = 0x640,
    AREA_BLACKTHORN_RIDGE_UNUSED = 0x641,
    AREA_BRAMBLESCAR_UNUSED = 0x642,
    AREA_AGAMAGOR_UNUSED = 0x643,
    AREA_VALLEY_OF_HEROES = 0x651,
    AREA_ORGRIMMAR = 0x665,
    AREA_THUNDER_BLUFF = 0x666,
    AREA_ELDER_RISE = 0x667,
    AREA_SPIRIT_RISE = 0x668,
    AREA_HUNTER_RISE = 0x669,
    AREA_DARNASSUS = 0x679,
    AREA_CENARION_ENCLAVE = 0x67A,
    AREA_CRAFTSMENS_TERRACE = 0x67B,
    AREA_WARRIORS_TERRACE = 0x67C,
    AREA_THE_TEMPLE_GARDENS = 0x67D,
    AREA_TRADESMENS_TERRACE = 0x67E,
    AREA_GAVINS_NAZE = 0x68D,
    AREA_SOFERAS_NAZE = 0x68E,
    AREA_CORRAHNS_DAGGER = 0x68F,
    AREA_THE_HEADLAND = 0x690,
    AREA_MISTY_SHORE = 0x691,
    AREA_DANDREDS_FOLD = 0x692,
    AREA_GROWLESS_CAVE = 0x693,
    AREA_CHILLWIND_POINT = 0x694,
    AREA_RAPTOR_GROUNDS = 0x6A1,
    AREA_BRAMBLESCAR = 0x6A2,
    AREA_THORN_HILL = 0x6A3,
    AREA_AGAMAGOR = 0x6A4,
    AREA_BLACKTHORN_RIDGE = 0x6A5,
    AREA_HONORS_STAND = 0x6A6,
    AREA_THE_MORSHAN_RAMPART = 0x6A7,
    AREA_GROLDOM_FARM = 0x6A8,
    AREA_RAZORFEN_KRAUL1 = 0x6B5,
    AREA_THE_GREAT_LIFT1 = 0x6B6,
    AREA_MISTVALE_VALLEY = 0x6C9,
    AREA_NEKMANI_WELLSPRING = 0x6CA,
    AREA_BLOODSAIL_COMPOUND = 0x6CB,
    AREA_VENTURE_CO_BASE_CAMP = 0x6CC,
    AREA_GURUBASHI_ARENA = 0x6CD,
    AREA_SPIRIT_DEN = 0x6CE,
    AREA_THE_CRIMSON_VEIL = 0x6DD,
    AREA_THE_RIPTIDE = 0x6DE,
    AREA_THE_DAMSELS_LUCK = 0x6DF,
    AREA_VENTURE_CO_OPERATIONS_CENTER = 0x6E0,
    AREA_DEADWOOD_VILLAGE = 0x6E1,
    AREA_FELPAW_VILLAGE = 0x6E2,
    AREA_JAEDENAR = 0x6E3,
    AREA_BLOODVENOM_RIVER = 0x6E4,
    AREA_BLOODVENOM_FALLS = 0x6E5,
    AREA_SHATTER_SCAR_VALE = 0x6E6,
    AREA_IRONTREE_WOODS = 0x6E7,
    AREA_IRONTREE_CAVERN = 0x6E8,
    AREA_TIMBERMAW_HOLD1 = 0x6E9,
    AREA_SHADOW_HOLD = 0x6EA,
    AREA_SHRINE_OF_THE_DECEIVER = 0x6EB,
    AREA_ITHARIUSS_CAVE = 0x6F1,
    AREA_SORROWMURK = 0x6F2,
    AREA_DRAENILDUR_VILLAGE = 0x6F3,
    AREA_SPLINTERSPEAR_JUNCTION = 0x6F4,
    AREA_STAGALBOG = 0x705,
    AREA_THE_SHIFTING_MIRE = 0x706,
    AREA_STAGALBOG_CAVE = 0x719,
    AREA_WITHERBARK_CAVERNS = 0x72D,
    AREA_THORADINS_WALL2 = 0x741,
    AREA_BOULDERGOR = 0x742,
    AREA_VALLEY_OF_FANGS = 0x755,
    AREA_THE_DUSTBOWL = 0x756,
    AREA_MIRAGE_FLATS = 0x757,
    AREA_FEATHERBEARDS_HOVEL = 0x758,
    AREA_SHINDIGGERS_CAMP = 0x759,
    AREA_PLAGUEMIST_RAVINE = 0x75A,
    AREA_VALORWIND_LAKE = 0x75B,
    AREA_AGOLWATHA = 0x75C,
    AREA_HIRIWATHA = 0x75D,
    AREA_THE_CREEPING_RUIN = 0x75E,
    AREA_BOGENS_LEDGE = 0x75F,
    AREA_THE_MAKERS_TERRACE = 0x769,
    AREA_DUSTWIND_GULCH = 0x76A,
    AREA_SHAOLWATHA = 0x77D,
    AREA_NOONSHADE_RUINS = 0x791,
    AREA_BROKEN_PILLAR = 0x792,
    AREA_ABYSSAL_SANDS = 0x793,
    AREA_SOUTHBREAK_SHORE = 0x794,
    AREA_CAVERNS_OF_TIME0 = 0x795,
    AREA_THE_MARSHLANDS = 0x796,
    AREA_IRONSTONE_PLATEAU = 0x797,
    AREA_BLACKCHAR_CAVE = 0x7A5,
    AREA_TANNER_CAMP = 0x7A6,
    AREA_DUSTFIRE_VALLEY = 0x7A7,
    AREA_ZUL_GURUB1 = 0x7B9,
    AREA_MISTY_REED_POST = 0x7BA,
    AREA_BLOODVENOM_POST = 0x7CD,
    AREA_TALONBRANCH_GLADE = 0x7CE,
    AREA_STRATHOLME0 = 0x7E1,
    AREA_UNUSED_SHADOWFANG_KEEP_003 = 0x7F5,
    AREA_SCHOLOMANCE = 0x809,
    AREA_TWILIGHT_VALE = 0x81D,
    AREA_TWILIGHT_SHORE = 0x81E,
    AREA_ALCAZ_ISLAND = 0x81F,
    AREA_DARKCLOUD_PINNACLE = 0x831,
    AREA_DAWNING_WOOD_CATACOMBS = 0x832,
    AREA_STONEWATCH_KEEP = 0x833,
    AREA_MARAUDON = 0x834,
    AREA_STOUTLAGER_INN = 0x835,
    AREA_THUNDERBREW_DISTILLERY = 0x836,
    AREA_MENETHIL_KEEP = 0x837,
    AREA_DEEPWATER_TAVERN = 0x838,
    AREA_SHADOW_GRAVE = 0x845,
    AREA_BRILL_TOWN_HALL = 0x846,
    AREA_GALLOWS_END_TAVERN = 0x847,
    AREA_THE_POOLS_OF_VISION_UNUSED = 0x859,
    AREA_DREADMIST_DEN = 0x85A,
    AREA_BAELDUN_KEEP = 0x86D,
    AREA_EMBERSTRIFES_DEN = 0x86E,
    AREA_ONYXIAS_LAIR = 0x86F,
    AREA_WINDSHEAR_MINE = 0x870,
    AREA_ROLANDS_DOOM = 0x871,
    AREA_BATTLE_RING = 0x881,
    AREA_THE_POOLS_OF_VISION = 0x895,
    AREA_SHADOWBREAK_RAVINE = 0x896,
    AREA_BROKEN_SPEAR_VILLAGE = 0x8A9,
    AREA_WHITEREACH_POST = 0x8BD,
    AREA_GORNIA = 0x8BE,
    AREA_ZANES_EYE_CRATER = 0x8BF,
    AREA_MIRAGE_RACEWAY = 0x8C0,
    AREA_FROSTSABER_ROCK = 0x8C1,
    AREA_THE_HIDDEN_GROVE = 0x8C2,
    AREA_TIMBERMAW_POST = 0x8C3,
    AREA_WINTERFALL_VILLAGE = 0x8C4,
    AREA_MAZTHORIL = 0x8C5,
    AREA_FROSTFIRE_HOT_SPRINGS = 0x8C6,
    AREA_ICE_THISTLE_HILLS = 0x8C7,
    AREA_DUN_MANDARR = 0x8C8,
    AREA_FROSTWHISPER_GORGE = 0x8C9,
    AREA_OWL_WING_THICKET = 0x8CA,
    AREA_LAKE_KEL_THERIL = 0x8CB,
    AREA_THE_RUINS_OF_KEL_THERIL = 0x8CC,
    AREA_STARFALL_VILLAGE = 0x8CD,
    AREA_BAN_THALLOW_BARROW_DEN = 0x8CE,
    AREA_EVERLOOK = 0x8CF,
    AREA_DARKWHISPER_GORGE = 0x8D0,
    AREA_DEEPRUN_TRAM = 0x8D1,
    AREA_THE_FUNGAL_VALE = 0x8D2,
    AREA_UNUSED_THE_MARRIS_STEAD = 0x8D3,
    AREA_THE_MARRIS_STEAD = 0x8D4,
    AREA_THE_UNDERCROFT = 0x8D5,
    AREA_DARROWSHIRE = 0x8D6,
    AREA_CROWN_GUARD_TOWER = 0x8D7,
    AREA_CORINS_CROSSING = 0x8D8,
    AREA_SCARLET_BASE_CAMP = 0x8D9,
    AREA_TYRS_HAND = 0x8DA,
    AREA_THE_SCARLET_BASILICA = 0x8DB,
    AREA_LIGHTS_HOPE_CHAPEL = 0x8DC,
    AREA_BROWMAN_MILL = 0x8DD,
    AREA_THE_NOXIOUS_GLADE = 0x8DE,
    AREA_EASTWALL_TOWER = 0x8DF,
    AREA_NORTHDALE = 0x8E0,
    AREA_ZUL_MASHAR = 0x8E1,
    AREA_MAZRA_ALOR = 0x8E2,
    AREA_NORTHPASS_TOWER = 0x8E3,
    AREA_QUEL_LITHIEN_LODGE = 0x8E4,
    AREA_PLAGUEWOOD = 0x8E5,
    AREA_SCOURGEHOLD = 0x8E6,
    AREA_STRATHOLME1 = 0x8E7,
    AREA_UNUSED_STRATHOLME = 0x8E8,
    AREA_DARROWMERE_LAKE0 = 0x8F9,
    AREA_CAER_DARROW = 0x8FA,
    AREA_DARROWMERE_LAKE1 = 0x8FB,
    AREA_CAVERNS_OF_TIME1 = 0x8FC,
    AREA_THISTLEFUR_VILLAGE = 0x8FD,
    AREA_THE_QUAGMIRE = 0x8FE,
    AREA_WINDBREAK_CANYON = 0x8FF,
    AREA_SOUTH_SEAS0 = 0x90D,
    AREA_THE_GREAT_SEA3 = 0x90E,
    AREA_THE_GREAT_SEA4 = 0x90F,
    AREA_THE_GREAT_SEA5 = 0x910,
    AREA_THE_GREAT_SEA6 = 0x911,
    AREA_THE_VEILED_SEA1 = 0x912,
    AREA_THE_VEILED_SEA2 = 0x913,
    AREA_THE_VEILED_SEA3 = 0x914,
    AREA_THE_VEILED_SEA4 = 0x915,
    AREA_THE_VEILED_SEA5 = 0x916,
    AREA_RAZOR_HILL_BARRACKS = 0x921,
    AREA_SOUTH_SEAS1 = 0x922,
    AREA_THE_GREAT_SEA7 = 0x923,
    AREA_BLOODTOOTH_CAMP = 0x935,
    AREA_FOREST_SONG = 0x936,
    AREA_GREENPAW_VILLAGE = 0x937,
    AREA_SILVERWING_OUTPOST = 0x938,
    AREA_NIGHTHAVEN = 0x939,
    AREA_SHRINE_OF_REMULOS = 0x93A,
    AREA_STORMRAGE_BARROW_DENS = 0x93B,
    AREA_THE_GREAT_SEA8 = 0x93C,
    AREA_THE_GREAT_SEA9 = 0x93D,
    AREA_THE_BLACK_MORASS = 0x93E,
    AREA_OLD_HILLSBRAD_FOOTHILLS = 0x93F,
    AREA_TARREN_MILL1 = 0x940,
    AREA_SOUTHSHORE1 = 0x941,
    AREA_DURNHOLDE_KEEP1 = 0x942,
    AREA_DUN_GAROK1 = 0x943,
    AREA_HILLSBRAD_FIELDS1 = 0x944,
    AREA_EASTERN_STRAND1 = 0x945,
    AREA_NETHANDER_STEAD1 = 0x946,
    AREA_DARROW_HILL1 = 0x947,
    AREA_SOUTHPOINT_TOWER1 = 0x948,
    AREA_THORADINS_WALL3 = 0x949,
    AREA_WESTERN_STRAND1 = 0x94A,
    AREA_AZURELODE_MINE1 = 0x94B,
    AREA_THE_GREAT_SEA10 = 0x95D,
    AREA_THE_GREAT_SEA11 = 0x95E,
    AREA_THE_GREAT_SEA12 = 0x95F,
    AREA_THE_FORBIDDING_SEA1 = 0x960,
    AREA_THE_FORBIDDING_SEA2 = 0x961,
    AREA_THE_FORBIDDING_SEA3 = 0x962,
    AREA_THE_FORBIDDING_SEA4 = 0x963,
    AREA_TETHRIS_ARAN = 0x964,
    AREA_ETHEL_RETHOR = 0x965,
    AREA_RANAZJAR_ISLE = 0x966,
    AREA_KORMEKS_HUT = 0x967,
    AREA_SHADOWPREY_VILLAGE = 0x968,
    AREA_BLACKROCK_PASS = 0x971,
    AREA_MORGANS_VIGIL = 0x972,
    AREA_SLITHER_ROCK = 0x973,
    AREA_TERROR_WING_PATH = 0x974,
    AREA_DRACODAR = 0x975,
    AREA_RAGEFIRE_CHASM = 0x985,
    AREA_NIGHTSONG_WOODS = 0x999,
    AREA_THE_VEILED_SEA6 = 0x9AD,
    AREA_MORLOS_ARAN = 0x9AE,
    AREA_EMERALD_SANCTUARY = 0x9AF,
    AREA_JADEFIRE_GLEN = 0x9B0,
    AREA_RUINS_OF_CONSTELLAS = 0x9B1,
    AREA_BITTER_REACHES = 0x9C1,
    AREA_RISE_OF_THE_DEFILER = 0x9D5,
    AREA_LARISS_PAVILION = 0x9D6,
    AREA_WOODPAW_HILLS = 0x9D7,
    AREA_WOODPAW_DEN = 0x9D8,
    AREA_VERDANTIS_RIVER = 0x9D9,
    AREA_RUINS_OF_ISILDIEN = 0x9DA,
    AREA_GRIMTOTEM_POST = 0x9E9,
    AREA_CAMP_APARAJE = 0x9EA,
    AREA_MALAKAJIN = 0x9EB,
    AREA_BOULDERSLIDE_RAVINE = 0x9EC,
    AREA_SISHIR_CANYON = 0x9ED,
    AREA_DIRE_MAUL0 = 0x9FD,
    AREA_DEADWIND_RAVINE = 0x9FE,
    AREA_DIAMONDHEAD_RIVER = 0x9FF,
    AREA_ARIDENS_CAMP = 0xA00,
    AREA_THE_VICE = 0xA01,
    AREA_KARAZHAN = 0xA02,
    AREA_MORGANS_PLOT = 0xA03,
    AREA_DIRE_MAUL1 = 0xA11,
    AREA_ALTERAC_VALLEY0 = 0xA25,
    AREA_SCRABBLESCREWS_CAMP = 0xA39,
    AREA_JADEFIRE_RUN = 0xA3A,
    AREA_THONDRORIL_RIVER0 = 0xA3B,
    AREA_THONDRORIL_RIVER1 = 0xA3C,
    AREA_LAKE_MERELDAR = 0xA3D,
    AREA_PESTILENT_SCAR = 0xA3E,
    AREA_THE_INFECTIS_SCAR = 0xA3F,
    AREA_BLACKWOOD_LAKE = 0xA40,
    AREA_EASTWALL_GATE = 0xA41,
    AREA_TERRORWEB_TUNNEL = 0xA42,
    AREA_TERRORDALE = 0xA43,
    AREA_KARGATHIA_KEEP = 0xA4D,
    AREA_VALLEY_OF_BONES = 0xA61,
    AREA_BLACKWING_LAIR = 0xA75,
    AREA_DEADMANS_CROSSING = 0xA89,
    AREA_MOLTEN_CORE = 0xA9D,
    AREA_THE_SCARAB_WALL = 0xAB1,
    AREA_SOUTHWIND_VILLAGE = 0xAB2,
    AREA_TWILIGHT_BASE_CAMP = 0xAB3,
    AREA_THE_CRYSTAL_VALE = 0xAB4,
    AREA_THE_SCARAB_DAIS = 0xAB5,
    AREA_HIVE_ASHI = 0xAB6,
    AREA_HIVE_ZORA = 0xAB7,
    AREA_HIVE_REGAL = 0xAB8,
    AREA_SHRINE_OF_THE_FALLEN_WARRIOR = 0xAC5,
    AREA_UNUSED_ALTERAC_VALLEY = 0xAD9,
    AREA_BLACKFATHOM_DEEPS1 = 0xAED,
    AREA_ON_MAP_DUNGEON4 = 0xB01,
    AREA_THE_MASTERS_CELLAR = 0xB15,
    AREA_STONEWROUGHT_PASS = 0xB16,
    AREA_ALTERAC_VALLEY1 = 0xB17,
    AREA_THE_RUMBLE_CAGE = 0xB29,
    AREA_CHUNK_TEST = 0xB3D,
    AREA_ZORAMGAR_OUTPOST = 0xB51,
    AREA_HALL_OF_LEGENDS = 0xB65,
    AREA_CHAMPIONS_HALL = 0xB66,
    AREA_GROSHGOK_COMPOUND = 0xB79,
    AREA_SLEEPING_GORGE = 0xB7A,
    AREA_IRONDEEP_MINE = 0xB8D,
    AREA_STONEHEARTH_OUTPOST = 0xB8E,
    AREA_DUN_BALDAR = 0xB8F,
    AREA_ICEWING_PASS = 0xB90,
    AREA_FROSTWOLF_VILLAGE = 0xB91,
    AREA_TOWER_POINT = 0xB92,
    AREA_COLDTOOTH_MINE = 0xB93,
    AREA_WINTERAX_HOLD = 0xB94,
    AREA_ICEBLOOD_GARRISON = 0xBA1,
    AREA_FROSTWOLF_KEEP = 0xBA2,
    AREA_TORKREN_FARM = 0xBA3,
    AREA_FROST_DAGGER_PASS = 0xBC9,
    AREA_IRONSTONE_CAMP = 0xBDD,
    AREA_WEAZELS_CRATER = 0xBDE,
    AREA_TAHONDA_RUINS = 0xBDF,
    AREA_FIELD_OF_STRIFE = 0xBF1,
    AREA_ICEWING_CAVERN = 0xBF2,
    AREA_VALORS_REST = 0xC05,
    AREA_THE_SWARMING_PILLAR = 0xC19,
    AREA_TWILIGHT_POST = 0xC1A,
    AREA_TWILIGHT_OUTPOST = 0xC1B,
    AREA_RAVAGED_TWILIGHT_CAMP = 0xC1C,
    AREA_SHALZARUS_LAIR = 0xC2D,
    AREA_TALRENDIS_POINT = 0xC41,
    AREA_RETHRESS_SANCTUM = 0xC42,
    AREA_MOON_HORROR_DEN = 0xC43,
    AREA_SCALEBEARDS_CAVE = 0xC44,
    AREA_BOULDERSLIDE_CAVERN = 0xC55,
    AREA_WARSONG_LABOR_CAMP = 0xC69,
    AREA_CHILLWIND_CAMP = 0xC7D,
    AREA_THE_MAUL = 0xC91,
    AREA_THE_MAUL_UNUSED = 0xCA5,
    AREA_BONES_OF_GRAKKAROND = 0xCB9,
    AREA_WARSONG_GULCH = 0xCCD,
    AREA_FROSTWOLF_GRAVEYARD = 0xCE1,
    AREA_FROSTWOLF_PASS = 0xCE2,
    AREA_DUN_BALDAR_PASS = 0xCE3,
    AREA_ICEBLOOD_GRAVEYARD = 0xCE4,
    AREA_SNOWFALL_GRAVEYARD = 0xCE5,
    AREA_STONEHEARTH_GRAVEYARD = 0xCE6,
    AREA_STORMPIKE_GRAVEYARD = 0xCE7,
    AREA_ICEWING_BUNKER = 0xCE8,
    AREA_STONEHEARTH_BUNKER = 0xCE9,
    AREA_WILDPAW_RIDGE = 0xCEA,
    AREA_REVANTUSK_VILLAGE = 0xCF5,
    AREA_ROCK_OF_DUROTAN = 0xCF6,
    AREA_SILVERWING_GROVE = 0xCF7,
    AREA_WARSONG_LUMBER_MILL = 0xCF8,
    AREA_SILVERWING_HOLD = 0xCF9,
    AREA_WILDPAW_CAVERN = 0xD09,
    AREA_THE_VEILED_CLEFT = 0xD0A,
    AREA_YOJAMBA_ISLE = 0xD1D,
    AREA_ARATHI_BASIN = 0xD1E,
    AREA_THE_COIL = 0xD31,
    AREA_ALTAR_OF_HIREEK = 0xD32,
    AREA_SHADRAZAAR = 0xD33,
    AREA_HAKKARI_GROUNDS = 0xD34,
    AREA_NAZE_OF_SHIRVALLAH = 0xD35,
    AREA_TEMPLE_OF_BETHEKK = 0xD36,
    AREA_THE_BLOODFIRE_PIT = 0xD37,
    AREA_ALTAR_OF_THE_BLOOD_GOD = 0xD38,
    AREA_ZANZAS_RISE = 0xD45,
    AREA_EDGE_OF_MADNESS = 0xD46,
    AREA_TROLLBANE_HALL = 0xD59,
    AREA_DEFILERS_DEN = 0xD5A,
    AREA_PAGLES_POINTE = 0xD5B,
    AREA_FARM = 0xD5C,
    AREA_BLACKSMITH = 0xD5D,
    AREA_LUMBER_MILL = 0xD5E,
    AREA_GOLD_MINE = 0xD5F,
    AREA_STABLES = 0xD60,
    AREA_CENARION_HOLD = 0xD61,
    AREA_STAGHELM_POINT = 0xD62,
    AREA_BRONZEBEARD_ENCAMPMENT = 0xD63,
    AREA_AHN_QIRAJ = 0xD64,
    AREA_RUINS_OF_AHN_QIRAJ0 = 0xD65,
    AREA_TWILIGHTS_RUN = 0xD76,
    AREA_ORTELLS_HIDEOUT = 0xD77,
    AREA_SCARAB_TERRACE = 0xD78,
    AREA_GENERALS_TERRACE = 0xD79,
    AREA_THE_RESERVOIR = 0xD7A,
    AREA_THE_HATCHERY = 0xD7B,
    AREA_THE_COMB = 0xD7C,
    AREA_WATCHERS_TERRACE = 0xD7D,
    AREA_RUINS_OF_AHN_QIRAJ1 = 0xD7E,
    AREA_NAXXRAMAS = 0xD80,
    AREA_CITY = 0xD83,
    AREA_GATES_OF_AHN_QIRAJ = 0xD96,
    AREA_RAVENHOLDT_MANOR = 0xD9E,
} e_area;
static const value_string e_area_strings[] =  {
    { AREA_DUN_MOROGH, "Dun Morogh" },
    { AREA_LONGSHORE, "Longshore" },
    { AREA_BADLANDS, "Badlands" },
    { AREA_BLASTED_LANDS, "Blasted Lands" },
    { AREA_BLACKWATER_COVE, "Blackwater Cove" },
    { AREA_SWAMP_OF_SORROWS, "Swamp Of Sorrows" },
    { AREA_NORTHSHIRE_VALLEY, "Northshire Valley" },
    { AREA_DUSKWOOD, "Duskwood" },
    { AREA_WETLANDS, "Wetlands" },
    { AREA_ELWYNN_FOREST, "Elwynn Forest" },
    { AREA_THE_WORLD_TREE, "The World Tree" },
    { AREA_DUROTAR, "Durotar" },
    { AREA_DUSTWALLOW_MARSH, "Dustwallow Marsh" },
    { AREA_AZSHARA, "Azshara" },
    { AREA_THE_BARRENS, "The Barrens" },
    { AREA_CRYSTAL_LAKE, "Crystal Lake" },
    { AREA_ZUL_GURUB0, "Zul Gurub0" },
    { AREA_MOONBROOK, "Moonbrook" },
    { AREA_KUL_TIRAS, "Kul Tiras" },
    { AREA_PROGRAMMER_ISLE, "Programmer Isle" },
    { AREA_NORTHSHIRE_RIVER, "Northshire River" },
    { AREA_NORTHSHIRE_ABBEY, "Northshire Abbey" },
    { AREA_BLACKROCK_MOUNTAIN0, "Blackrock Mountain0" },
    { AREA_LIGHTHOUSE, "Lighthouse" },
    { AREA_WESTERN_PLAGUELANDS, "Western Plaguelands" },
    { AREA_NINE, "Nine" },
    { AREA_THE_CEMETARY, "The Cemetary" },
    { AREA_STRANGLETHORN_VALE, "Stranglethorn Vale" },
    { AREA_ECHO_RIDGE_MINE, "Echo Ridge Mine" },
    { AREA_BOOTY_BAY, "Booty Bay" },
    { AREA_ALTERAC_MOUNTAINS, "Alterac Mountains" },
    { AREA_LAKE_NAZFERITI, "Lake Nazferiti" },
    { AREA_LOCH_MODAN, "Loch Modan" },
    { AREA_WESTFALL0, "Westfall0" },
    { AREA_DEADWIND_PASS, "Deadwind Pass" },
    { AREA_DARKSHIRE, "Darkshire" },
    { AREA_WILD_SHORE, "Wild Shore" },
    { AREA_REDRIDGE_MOUNTAINS, "Redridge Mountains" },
    { AREA_ARATHI_HIGHLANDS, "Arathi Highlands" },
    { AREA_BURNING_STEPPES, "Burning Steppes" },
    { AREA_THE_HINTERLANDS, "The Hinterlands" },
    { AREA_DEAD_MANS_HOLE, "Dead Mans Hole" },
    { AREA_SEARING_GORGE, "Searing Gorge" },
    { AREA_THIEVES_CAMP, "Thieves Camp" },
    { AREA_JASPERLODE_MINE, "Jasperlode Mine" },
    { AREA_VALLEY_OF_HEROES_UNUSED, "Valley Of Heroes Unused" },
    { AREA_HEROES_VIGIL, "Heroes Vigil" },
    { AREA_FARGODEEP_MINE, "Fargodeep Mine" },
    { AREA_NORTHSHIRE_VINEYARDS, "Northshire Vineyards" },
    { AREA_FORESTS_EDGE, "Forests Edge" },
    { AREA_THUNDER_FALLS, "Thunder Falls" },
    { AREA_BRACKWELL_PUMPKIN_PATCH, "Brackwell Pumpkin Patch" },
    { AREA_THE_STONEFIELD_FARM, "The Stonefield Farm" },
    { AREA_THE_MACLURE_VINEYARDS, "The Maclure Vineyards" },
    { AREA_ON_MAP_DUNGEON0, "On Map Dungeon0" },
    { AREA_ON_MAP_DUNGEON1, "On Map Dungeon1" },
    { AREA_ON_MAP_DUNGEON2, "On Map Dungeon2" },
    { AREA_LAKE_EVERSTILL, "Lake Everstill" },
    { AREA_LAKESHIRE, "Lakeshire" },
    { AREA_STONEWATCH, "Stonewatch" },
    { AREA_STONEWATCH_FALLS, "Stonewatch Falls" },
    { AREA_THE_DARK_PORTAL, "The Dark Portal" },
    { AREA_THE_TAINTED_SCAR, "The Tainted Scar" },
    { AREA_POOL_OF_TEARS, "Pool Of Tears" },
    { AREA_STONARD, "Stonard" },
    { AREA_FALLOW_SANCTUARY, "Fallow Sanctuary" },
    { AREA_ANVILMAR, "Anvilmar" },
    { AREA_STORMWIND_MOUNTAINS, "Stormwind Mountains" },
    { AREA_JEFF_NE_QUADRANT_CHANGED, "Jeff Ne Quadrant Changed" },
    { AREA_JEFF_NW_QUADRANT, "Jeff Nw Quadrant" },
    { AREA_JEFF_SE_QUADRANT, "Jeff Se Quadrant" },
    { AREA_JEFF_SW_QUADRANT, "Jeff Sw Quadrant" },
    { AREA_TIRISFAL_GLADES, "Tirisfal Glades" },
    { AREA_STONE_CAIRN_LAKE, "Stone Cairn Lake" },
    { AREA_GOLDSHIRE, "Goldshire" },
    { AREA_EASTVALE_LOGGING_CAMP, "Eastvale Logging Camp" },
    { AREA_MIRROR_LAKE_ORCHARD, "Mirror Lake Orchard" },
    { AREA_TOWER_OF_AZORA, "Tower Of Azora" },
    { AREA_MIRROR_LAKE, "Mirror Lake" },
    { AREA_VUL_GOL_OGRE_MOUND, "Vul Gol Ogre Mound" },
    { AREA_RAVEN_HILL, "Raven Hill" },
    { AREA_REDRIDGE_CANYONS, "Redridge Canyons" },
    { AREA_TOWER_OF_ILGALAR, "Tower Of Ilgalar" },
    { AREA_ALTHERS_MILL, "Althers Mill" },
    { AREA_RETHBAN_CAVERNS, "Rethban Caverns" },
    { AREA_REBEL_CAMP, "Rebel Camp" },
    { AREA_NESINGWARYS_EXPEDITION, "Nesingwarys Expedition" },
    { AREA_KURZENS_COMPOUND, "Kurzens Compound" },
    { AREA_RUINS_OF_ZUL_KUNDA, "Ruins Of Zul Kunda" },
    { AREA_RUINS_OF_ZUL_MAMWE, "Ruins Of Zul Mamwe" },
    { AREA_THE_VILE_REEF, "The Vile Reef" },
    { AREA_MOSH_OGG_OGRE_MOUND, "Mosh Ogg Ogre Mound" },
    { AREA_THE_STOCKPILE, "The Stockpile" },
    { AREA_SALDEANS_FARM, "Saldeans Farm" },
    { AREA_SENTINEL_HILL, "Sentinel Hill" },
    { AREA_FURLBROWS_PUMPKIN_FARM, "Furlbrows Pumpkin Farm" },
    { AREA_JANGOLODE_MINE, "Jangolode Mine" },
    { AREA_GOLD_COAST_QUARRY, "Gold Coast Quarry" },
    { AREA_WESTFALL_LIGHTHOUSE, "Westfall Lighthouse" },
    { AREA_MISTY_VALLEY, "Misty Valley" },
    { AREA_GROMGOL_BASE_CAMP, "Gromgol Base Camp" },
    { AREA_WHELGARS_EXCAVATION_SITE, "Whelgars Excavation Site" },
    { AREA_WESTBROOK_GARRISON, "Westbrook Garrison" },
    { AREA_TRANQUIL_GARDENS_CEMETERY, "Tranquil Gardens Cemetery" },
    { AREA_ZUULDAIA_RUINS, "Zuuldaia Ruins" },
    { AREA_BALLAL_RUINS, "Ballal Ruins" },
    { AREA_KALAI_RUINS, "Kalai Ruins" },
    { AREA_TKASHI_RUINS, "Tkashi Ruins" },
    { AREA_BALIAMAH_RUINS, "Baliamah Ruins" },
    { AREA_ZIATAJAI_RUINS, "Ziatajai Ruins" },
    { AREA_MIZJAH_RUINS, "Mizjah Ruins" },
    { AREA_SILVERPINE_FOREST, "Silverpine Forest" },
    { AREA_KHARANOS, "Kharanos" },
    { AREA_COLDRIDGE_VALLEY, "Coldridge Valley" },
    { AREA_GNOMEREGAN0, "Gnomeregan0" },
    { AREA_GOL_BOLAR_QUARRY, "Gol Bolar Quarry" },
    { AREA_FROSTMANE_HOLD, "Frostmane Hold" },
    { AREA_THE_GRIZZLED_DEN, "The Grizzled Den" },
    { AREA_BREWNALL_VILLAGE, "Brewnall Village" },
    { AREA_MISTY_PINE_REFUGE, "Misty Pine Refuge" },
    { AREA_EASTERN_PLAGUELANDS, "Eastern Plaguelands" },
    { AREA_TELDRASSIL, "Teldrassil" },
    { AREA_IRONBANDS_EXCAVATION_SITE, "Ironbands Excavation Site" },
    { AREA_MOGROSH_STRONGHOLD, "Mogrosh Stronghold" },
    { AREA_THELSAMAR, "Thelsamar" },
    { AREA_ALGAZ_GATE, "Algaz Gate" },
    { AREA_STONEWROUGHT_DAM, "Stonewrought Dam" },
    { AREA_THE_FARSTRIDER_LODGE, "The Farstrider Lodge" },
    { AREA_DARKSHORE, "Darkshore" },
    { AREA_SILVER_STREAM_MINE, "Silver Stream Mine" },
    { AREA_MENETHIL_HARBOR, "Menethil Harbor" },
    { AREA_DESIGNER_ISLAND, "Designer Island" },
    { AREA_THE_BULWARK0, "The Bulwark0" },
    { AREA_RUINS_OF_LORDAERON, "Ruins Of Lordaeron" },
    { AREA_DEATHKNELL, "Deathknell" },
    { AREA_NIGHT_WEBS_HOLLOW, "Night Webs Hollow" },
    { AREA_SOLLIDEN_FARMSTEAD, "Solliden Farmstead" },
    { AREA_AGAMAND_MILLS, "Agamand Mills" },
    { AREA_AGAMAND_FAMILY_CRYPT, "Agamand Family Crypt" },
    { AREA_BRILL, "Brill" },
    { AREA_WHISPERING_GARDENS, "Whispering Gardens" },
    { AREA_TERRACE_OF_REPOSE, "Terrace Of Repose" },
    { AREA_BRIGHTWATER_LAKE, "Brightwater Lake" },
    { AREA_GUNTHERS_RETREAT, "Gunthers Retreat" },
    { AREA_GARRENS_HAUNT, "Garrens Haunt" },
    { AREA_BALNIR_FARMSTEAD, "Balnir Farmstead" },
    { AREA_COLD_HEARTH_MANOR, "Cold Hearth Manor" },
    { AREA_CRUSADER_OUTPOST, "Crusader Outpost" },
    { AREA_THE_NORTH_COAST, "The North Coast" },
    { AREA_WHISPERING_SHORE, "Whispering Shore" },
    { AREA_LORDAMERE_LAKE0, "Lordamere Lake0" },
    { AREA_FENRIS_ISLE, "Fenris Isle" },
    { AREA_FAOLS_REST, "Faols Rest" },
    { AREA_DOLANAAR, "Dolanaar" },
    { AREA_DARNASSUS_UNUSED, "Darnassus Unused" },
    { AREA_SHADOWGLEN, "Shadowglen" },
    { AREA_STEELGRILLS_DEPOT, "Steelgrills Depot" },
    { AREA_HEARTHGLEN, "Hearthglen" },
    { AREA_NORTHRIDGE_LUMBER_CAMP, "Northridge Lumber Camp" },
    { AREA_RUINS_OF_ANDORHAL, "Ruins Of Andorhal" },
    { AREA_SCHOOL_OF_NECROMANCY, "School Of Necromancy" },
    { AREA_UTHERS_TOMB, "Uthers Tomb" },
    { AREA_SORROW_HILL, "Sorrow Hill" },
    { AREA_THE_WEEPING_CAVE, "The Weeping Cave" },
    { AREA_FELSTONE_FIELD, "Felstone Field" },
    { AREA_DALSONS_TEARS, "Dalsons Tears" },
    { AREA_GAHRRONS_WITHERING, "Gahrrons Withering" },
    { AREA_THE_WRITHING_HAUNT, "The Writhing Haunt" },
    { AREA_MARDENHOLDE_KEEP, "Mardenholde Keep" },
    { AREA_PYREWOOD_VILLAGE, "Pyrewood Village" },
    { AREA_DUN_MODR, "Dun Modr" },
    { AREA_WESTFALL1, "Westfall1" },
    { AREA_THE_GREAT_SEA0, "The Great Sea0" },
    { AREA_UNUSED_IRONCLADCOVE, "Unused Ironcladcove" },
    { AREA_SHADOWFANG_KEEP0, "Shadowfang Keep0" },
    { AREA_ON_MAP_DUNGEON3, "On Map Dungeon3" },
    { AREA_ICEFLOW_LAKE, "Iceflow Lake" },
    { AREA_HELMS_BED_LAKE, "Helms Bed Lake" },
    { AREA_DEEP_ELEM_MINE, "Deep Elem Mine" },
    { AREA_THE_GREAT_SEA1, "The Great Sea1" },
    { AREA_MULGORE, "Mulgore" },
    { AREA_ALEXSTON_FARMSTEAD, "Alexston Farmstead" },
    { AREA_RED_CLOUD_MESA, "Red Cloud Mesa" },
    { AREA_CAMP_NARACHE, "Camp Narache" },
    { AREA_BLOODHOOF_VILLAGE, "Bloodhoof Village" },
    { AREA_STONEBULL_LAKE, "Stonebull Lake" },
    { AREA_RAVAGED_CARAVAN, "Ravaged Caravan" },
    { AREA_RED_ROCKS, "Red Rocks" },
    { AREA_THE_SKITTERING_DARK, "The Skittering Dark" },
    { AREA_VALGANS_FIELD, "Valgans Field" },
    { AREA_THE_SEPULCHER, "The Sepulcher" },
    { AREA_OLSENS_FARTHING, "Olsens Farthing" },
    { AREA_THE_GREYMANE_WALL, "The Greymane Wall" },
    { AREA_BERENS_PERIL, "Berens Peril" },
    { AREA_THE_DAWNING_ISLES, "The Dawning Isles" },
    { AREA_AMBERMILL, "Ambermill" },
    { AREA_FENRIS_KEEP, "Fenris Keep" },
    { AREA_SHADOWFANG_KEEP1, "Shadowfang Keep1" },
    { AREA_THE_DECREPIT_FERRY, "The Decrepit Ferry" },
    { AREA_MALDENS_ORCHARD, "Maldens Orchard" },
    { AREA_THE_IVAR_PATCH, "The Ivar Patch" },
    { AREA_THE_DEAD_FIELD, "The Dead Field" },
    { AREA_THE_ROTTING_ORCHARD, "The Rotting Orchard" },
    { AREA_BRIGHTWOOD_GROVE, "Brightwood Grove" },
    { AREA_FORLORN_ROWE, "Forlorn Rowe" },
    { AREA_THE_WHIPPLE_ESTATE, "The Whipple Estate" },
    { AREA_THE_YORGEN_FARMSTEAD, "The Yorgen Farmstead" },
    { AREA_THE_CAULDRON, "The Cauldron" },
    { AREA_GRIMESILT_DIG_SITE, "Grimesilt Dig Site" },
    { AREA_DREADMAUL_ROCK, "Dreadmaul Rock" },
    { AREA_RUINS_OF_THAURISSAN, "Ruins Of Thaurissan" },
    { AREA_FLAME_CREST, "Flame Crest" },
    { AREA_BLACKROCK_STRONGHOLD, "Blackrock Stronghold" },
    { AREA_THE_PILLAR_OF_ASH, "The Pillar Of Ash" },
    { AREA_BLACKROCK_MOUNTAIN1, "Blackrock Mountain1" },
    { AREA_ALTAR_OF_STORMS0, "Altar Of Storms0" },
    { AREA_ALDRASSIL, "Aldrassil" },
    { AREA_SHADOWTHREAD_CAVE, "Shadowthread Cave" },
    { AREA_FEL_ROCK, "Fel Rock" },
    { AREA_LAKE_AL_AMETH, "Lake Al Ameth" },
    { AREA_STARBREEZE_VILLAGE, "Starbreeze Village" },
    { AREA_GNARLPINE_HOLD, "Gnarlpine Hold" },
    { AREA_BANETHIL_BARROW_DEN, "Banethil Barrow Den" },
    { AREA_THE_CLEFT, "The Cleft" },
    { AREA_THE_ORACLE_GLADE, "The Oracle Glade" },
    { AREA_WELLSPRING_RIVER, "Wellspring River" },
    { AREA_WELLSPRING_LAKE, "Wellspring Lake" },
    { AREA_HILLSBRAD_FOOTHILLS, "Hillsbrad Foothills" },
    { AREA_AZSHARA_CRATER, "Azshara Crater" },
    { AREA_DUN_ALGAZ0, "Dun Algaz0" },
    { AREA_SOUTHSHORE0, "Southshore0" },
    { AREA_TARREN_MILL0, "Tarren Mill0" },
    { AREA_DURNHOLDE_KEEP0, "Durnholde Keep0" },
    { AREA_UNUSED_STONEWROUGHT_PASS, "Unused Stonewrought Pass" },
    { AREA_THE_FOOTHILL_CAVERNS, "The Foothill Caverns" },
    { AREA_LORDAMERE_INTERNMENT_CAMP, "Lordamere Internment Camp" },
    { AREA_DALARAN, "Dalaran" },
    { AREA_STRAHNBRAD, "Strahnbrad" },
    { AREA_RUINS_OF_ALTERAC, "Ruins Of Alterac" },
    { AREA_CRUSHRIDGE_HOLD, "Crushridge Hold" },
    { AREA_SLAUGHTER_HOLLOW, "Slaughter Hollow" },
    { AREA_THE_UPLANDS, "The Uplands" },
    { AREA_SOUTHPOINT_TOWER0, "Southpoint Tower0" },
    { AREA_HILLSBRAD_FIELDS0, "Hillsbrad Fields0" },
    { AREA_HILLSBRAD, "Hillsbrad" },
    { AREA_AZURELODE_MINE0, "Azurelode Mine0" },
    { AREA_NETHANDER_STEAD0, "Nethander Stead0" },
    { AREA_DUN_GAROK0, "Dun Garok0" },
    { AREA_THORADINS_WALL0, "Thoradins Wall0" },
    { AREA_EASTERN_STRAND0, "Eastern Strand0" },
    { AREA_WESTERN_STRAND0, "Western Strand0" },
    { AREA_SOUTH_SEAS_UNUSED, "South Seas Unused" },
    { AREA_JAGUERO_ISLE, "Jaguero Isle" },
    { AREA_BARADIN_BAY, "Baradin Bay" },
    { AREA_MENETHIL_BAY, "Menethil Bay" },
    { AREA_MISTY_REED_STRAND, "Misty Reed Strand" },
    { AREA_THE_SAVAGE_COAST, "The Savage Coast" },
    { AREA_THE_CRYSTAL_SHORE, "The Crystal Shore" },
    { AREA_SHELL_BEACH, "Shell Beach" },
    { AREA_NORTH_TIDES_RUN, "North Tides Run" },
    { AREA_SOUTH_TIDES_RUN, "South Tides Run" },
    { AREA_THE_OVERLOOK_CLIFFS, "The Overlook Cliffs" },
    { AREA_THE_FORBIDDING_SEA0, "The Forbidding Sea0" },
    { AREA_IRONBEARDS_TOMB, "Ironbeards Tomb" },
    { AREA_CRYSTALVEIN_MINE, "Crystalvein Mine" },
    { AREA_RUINS_OF_ABORAZ, "Ruins Of Aboraz" },
    { AREA_JANEIROS_POINT, "Janeiros Point" },
    { AREA_NORTHFOLD_MANOR, "Northfold Manor" },
    { AREA_GO_SHEK_FARM, "Go Shek Farm" },
    { AREA_DABYRIES_FARMSTEAD, "Dabyries Farmstead" },
    { AREA_BOULDERFIST_HALL, "Boulderfist Hall" },
    { AREA_WITHERBARK_VILLAGE, "Witherbark Village" },
    { AREA_DRYWHISKER_GORGE, "Drywhisker Gorge" },
    { AREA_REFUGE_POINTE, "Refuge Pointe" },
    { AREA_HAMMERFALL, "Hammerfall" },
    { AREA_BLACKWATER_SHIPWRECKS, "Blackwater Shipwrecks" },
    { AREA_O_BREENS_CAMP, "O Breens Camp" },
    { AREA_STROMGARDE_KEEP, "Stromgarde Keep" },
    { AREA_THE_TOWER_OF_ARATHOR, "The Tower Of Arathor" },
    { AREA_THE_SANCTUM, "The Sanctum" },
    { AREA_FALDIRS_COVE, "Faldirs Cove" },
    { AREA_THE_DROWNED_REEF, "The Drowned Reef" },
    { AREA_THANDOL_SPAN0, "Thandol Span0" },
    { AREA_ASHENVALE, "Ashenvale" },
    { AREA_THE_GREAT_SEA2, "The Great Sea2" },
    { AREA_CIRCLE_OF_EAST_BINDING, "Circle Of East Binding" },
    { AREA_CIRCLE_OF_WEST_BINDING, "Circle Of West Binding" },
    { AREA_CIRCLE_OF_INNER_BINDING, "Circle Of Inner Binding" },
    { AREA_CIRCLE_OF_OUTER_BINDING, "Circle Of Outer Binding" },
    { AREA_APOCRYPHANS_REST, "Apocryphans Rest" },
    { AREA_ANGOR_FORTRESS, "Angor Fortress" },
    { AREA_LETHLOR_RAVINE, "Lethlor Ravine" },
    { AREA_KARGATH, "Kargath" },
    { AREA_CAMP_KOSH, "Camp Kosh" },
    { AREA_CAMP_BOFF, "Camp Boff" },
    { AREA_CAMP_WURG, "Camp Wurg" },
    { AREA_CAMP_CAGG, "Camp Cagg" },
    { AREA_AGMONDS_END, "Agmonds End" },
    { AREA_HAMMERTOES_DIGSITE, "Hammertoes Digsite" },
    { AREA_DUSTBELCH_GROTTO, "Dustbelch Grotto" },
    { AREA_AERIE_PEAK, "Aerie Peak" },
    { AREA_WILDHAMMER_KEEP, "Wildhammer Keep" },
    { AREA_QUEL_DANIL_LODGE, "Quel Danil Lodge" },
    { AREA_SKULK_ROCK, "Skulk Rock" },
    { AREA_ZUNWATHA, "Zunwatha" },
    { AREA_SHADRA_ALOR, "Shadra Alor" },
    { AREA_JINTHA_ALOR, "Jintha Alor" },
    { AREA_THE_ALTAR_OF_ZUL, "The Altar Of Zul" },
    { AREA_SERADANE, "Seradane" },
    { AREA_FERALAS, "Feralas" },
    { AREA_BRAMBLEBLADE_RAVINE, "Brambleblade Ravine" },
    { AREA_BAEL_MODAN, "Bael Modan" },
    { AREA_THE_VENTURE_CO_MINE, "The Venture Co Mine" },
    { AREA_FELWOOD, "Felwood" },
    { AREA_RAZOR_HILL, "Razor Hill" },
    { AREA_VALLEY_OF_TRIALS, "Valley Of Trials" },
    { AREA_THE_DEN, "The Den" },
    { AREA_BURNING_BLADE_COVEN, "Burning Blade Coven" },
    { AREA_KOLKAR_CRAG, "Kolkar Crag" },
    { AREA_SENJIN_VILLAGE, "Senjin Village" },
    { AREA_ECHO_ISLES, "Echo Isles" },
    { AREA_THUNDER_RIDGE, "Thunder Ridge" },
    { AREA_DRYGULCH_RAVINE, "Drygulch Ravine" },
    { AREA_DUSTWIND_CAVE, "Dustwind Cave" },
    { AREA_TIRAGARDE_KEEP, "Tiragarde Keep" },
    { AREA_SCUTTLE_COAST, "Scuttle Coast" },
    { AREA_BLADEFIST_BAY, "Bladefist Bay" },
    { AREA_DEADEYE_SHORE, "Deadeye Shore" },
    { AREA_SOUTHFURY_RIVER0, "Southfury River0" },
    { AREA_CAMP_TAURAJO, "Camp Taurajo" },
    { AREA_FAR_WATCH_POST, "Far Watch Post" },
    { AREA_THE_CROSSROADS, "The Crossroads" },
    { AREA_BOULDER_LODE_MINE, "Boulder Lode Mine" },
    { AREA_THE_SLUDGE_FEN, "The Sludge Fen" },
    { AREA_THE_DRY_HILLS, "The Dry Hills" },
    { AREA_DREADMIST_PEAK, "Dreadmist Peak" },
    { AREA_NORTHWATCH_HOLD, "Northwatch Hold" },
    { AREA_THE_FORGOTTEN_POOLS, "The Forgotten Pools" },
    { AREA_LUSHWATER_OASIS, "Lushwater Oasis" },
    { AREA_THE_STAGNANT_OASIS, "The Stagnant Oasis" },
    { AREA_FIELD_OF_GIANTS, "Field Of Giants" },
    { AREA_THE_MERCHANT_COAST, "The Merchant Coast" },
    { AREA_RATCHET, "Ratchet" },
    { AREA_DARKSPEAR_STRAND, "Darkspear Strand" },
    { AREA_DARROWMERE_LAKE_UNUSED, "Darrowmere Lake Unused" },
    { AREA_CAER_DARROW_UNUSED, "Caer Darrow Unused" },
    { AREA_WINTERHOOF_WATER_WELL, "Winterhoof Water Well" },
    { AREA_THUNDERHORN_WATER_WELL, "Thunderhorn Water Well" },
    { AREA_WILDMANE_WATER_WELL, "Wildmane Water Well" },
    { AREA_SKYLINE_RIDGE, "Skyline Ridge" },
    { AREA_THOUSAND_NEEDLES, "Thousand Needles" },
    { AREA_THE_TIDUS_STAIR, "The Tidus Stair" },
    { AREA_SHADY_REST_INN, "Shady Rest Inn" },
    { AREA_BAELDUN_DIGSITE, "Baeldun Digsite" },
    { AREA_DESOLACE, "Desolace" },
    { AREA_STONETALON_MOUNTAINS, "Stonetalon Mountains" },
    { AREA_ORGRIMMAR_UNUSED, "Orgrimmar Unused" },
    { AREA_GILLIJIMS_ISLE, "Gillijims Isle" },
    { AREA_ISLAND_OF_DOCTOR_LAPIDIS, "Island Of Doctor Lapidis" },
    { AREA_RAZORWIND_CANYON, "Razorwind Canyon" },
    { AREA_BATHRANS_HAUNT, "Bathrans Haunt" },
    { AREA_THE_RUINS_OF_ORDIL_ARAN, "The Ruins Of Ordil Aran" },
    { AREA_MAESTRAS_POST, "Maestras Post" },
    { AREA_THE_ZORAM_STRAND, "The Zoram Strand" },
    { AREA_ASTRANAAR, "Astranaar" },
    { AREA_THE_SHRINE_OF_AESSINA, "The Shrine Of Aessina" },
    { AREA_FIRE_SCAR_SHRINE, "Fire Scar Shrine" },
    { AREA_THE_RUINS_OF_STARDUST, "The Ruins Of Stardust" },
    { AREA_THE_HOWLING_VALE, "The Howling Vale" },
    { AREA_SILVERWIND_REFUGE, "Silverwind Refuge" },
    { AREA_MYSTRAL_LAKE, "Mystral Lake" },
    { AREA_FALLEN_SKY_LAKE, "Fallen Sky Lake" },
    { AREA_IRIS_LAKE, "Iris Lake" },
    { AREA_MOONWELL, "Moonwell" },
    { AREA_RAYNEWOOD_RETREAT, "Raynewood Retreat" },
    { AREA_THE_SHADY_NOOK, "The Shady Nook" },
    { AREA_NIGHT_RUN, "Night Run" },
    { AREA_XAVIAN, "Xavian" },
    { AREA_SATYRNAAR, "Satyrnaar" },
    { AREA_SPLINTERTREE_POST, "Splintertree Post" },
    { AREA_THE_DOR_DANIL_BARROW_DEN, "The Dor Danil Barrow Den" },
    { AREA_FALFARREN_RIVER, "Falfarren River" },
    { AREA_FELFIRE_HILL, "Felfire Hill" },
    { AREA_DEMON_FALL_CANYON, "Demon Fall Canyon" },
    { AREA_DEMON_FALL_RIDGE, "Demon Fall Ridge" },
    { AREA_WARSONG_LUMBER_CAMP, "Warsong Lumber Camp" },
    { AREA_BOUGH_SHADOW, "Bough Shadow" },
    { AREA_THE_SHIMMERING_FLATS, "The Shimmering Flats" },
    { AREA_TANARIS, "Tanaris" },
    { AREA_LAKE_FALATHIM, "Lake Falathim" },
    { AREA_AUBERDINE, "Auberdine" },
    { AREA_RUINS_OF_MATHYSTRA, "Ruins Of Mathystra" },
    { AREA_TOWER_OF_ALTHALAXX, "Tower Of Althalaxx" },
    { AREA_CLIFFSPRING_FALLS, "Cliffspring Falls" },
    { AREA_BASHAL_ARAN, "Bashal Aran" },
    { AREA_AMETH_ARAN, "Ameth Aran" },
    { AREA_GROVE_OF_THE_ANCIENTS, "Grove Of The Ancients" },
    { AREA_THE_MASTERS_GLAIVE, "The Masters Glaive" },
    { AREA_REMTRAVELS_EXCAVATION, "Remtravels Excavation" },
    { AREA_MISTS_EDGE, "Mists Edge" },
    { AREA_THE_LONG_WASH, "The Long Wash" },
    { AREA_WILDBEND_RIVER, "Wildbend River" },
    { AREA_BLACKWOOD_DEN, "Blackwood Den" },
    { AREA_CLIFFSPRING_RIVER, "Cliffspring River" },
    { AREA_THE_VEILED_SEA0, "The Veiled Sea0" },
    { AREA_GOLD_ROAD, "Gold Road" },
    { AREA_SCARLET_WATCH_POST, "Scarlet Watch Post" },
    { AREA_SUN_ROCK_RETREAT, "Sun Rock Retreat" },
    { AREA_WINDSHEAR_CRAG, "Windshear Crag" },
    { AREA_CRAGPOOL_LAKE, "Cragpool Lake" },
    { AREA_MIRKFALLON_LAKE, "Mirkfallon Lake" },
    { AREA_THE_CHARRED_VALE, "The Charred Vale" },
    { AREA_VALLEY_OF_THE_BLOODFURIES, "Valley Of The Bloodfuries" },
    { AREA_STONETALON_PEAK, "Stonetalon Peak" },
    { AREA_THE_TALON_DEN, "The Talon Den" },
    { AREA_GREATWOOD_VALE, "Greatwood Vale" },
    { AREA_THUNDER_BLUFF_UNUSED, "Thunder Bluff Unused" },
    { AREA_BRAVE_WIND_MESA, "Brave Wind Mesa" },
    { AREA_FIRE_STONE_MESA, "Fire Stone Mesa" },
    { AREA_MANTLE_ROCK, "Mantle Rock" },
    { AREA_HUNTER_RISE_UNUSED, "Hunter Rise Unused" },
    { AREA_SPIRIT_RISE_UNUSED, "Spirit Rise Unused" },
    { AREA_ELDER_RISE_UNUSED, "Elder Rise Unused" },
    { AREA_RUINS_OF_JUBUWAL, "Ruins Of Jubuwal" },
    { AREA_POOLS_OF_ARLITHRIEN, "Pools Of Arlithrien" },
    { AREA_THE_RUSTMAUL_DIG_SITE, "The Rustmaul Dig Site" },
    { AREA_CAMP_ETHOK, "Camp Ethok" },
    { AREA_SPLITHOOF_CRAG, "Splithoof Crag" },
    { AREA_HIGHPERCH, "Highperch" },
    { AREA_THE_SCREECHING_CANYON, "The Screeching Canyon" },
    { AREA_FREEWIND_POST, "Freewind Post" },
    { AREA_THE_GREAT_LIFT0, "The Great Lift0" },
    { AREA_GALAK_HOLD, "Galak Hold" },
    { AREA_ROGUEFEATHER_DEN, "Roguefeather Den" },
    { AREA_THE_WEATHERED_NOOK, "The Weathered Nook" },
    { AREA_THALANAAR, "Thalanaar" },
    { AREA_UN_GORO_CRATER, "Un Goro Crater" },
    { AREA_RAZORFEN_KRAUL0, "Razorfen Kraul0" },
    { AREA_RAVEN_HILL_CEMETERY, "Raven Hill Cemetery" },
    { AREA_MOONGLADE, "Moonglade" },
    { AREA_DELETE_ME0, "Delete Me0" },
    { AREA_BRACKENWALL_VILLAGE, "Brackenwall Village" },
    { AREA_SWAMPLIGHT_MANOR, "Swamplight Manor" },
    { AREA_BLOODFEN_BURROW, "Bloodfen Burrow" },
    { AREA_DARKMIST_CAVERN, "Darkmist Cavern" },
    { AREA_MOGGLE_POINT, "Moggle Point" },
    { AREA_BEEZILS_WRECK, "Beezils Wreck" },
    { AREA_WITCH_HILL, "Witch Hill" },
    { AREA_SENTRY_POINT, "Sentry Point" },
    { AREA_NORTH_POINT_TOWER, "North Point Tower" },
    { AREA_WEST_POINT_TOWER, "West Point Tower" },
    { AREA_LOST_POINT, "Lost Point" },
    { AREA_BLUEFEN, "Bluefen" },
    { AREA_STONEMAUL_RUINS, "Stonemaul Ruins" },
    { AREA_THE_DEN_OF_FLAME, "The Den Of Flame" },
    { AREA_THE_DRAGONMURK, "The Dragonmurk" },
    { AREA_WYRMBOG, "Wyrmbog" },
    { AREA_ONYXIAS_LAIR_UNUSED, "Onyxias Lair Unused" },
    { AREA_THERAMORE_ISLE, "Theramore Isle" },
    { AREA_FOOTHOLD_CITADEL, "Foothold Citadel" },
    { AREA_IRONCLAD_PRISON, "Ironclad Prison" },
    { AREA_DUSTWALLOW_BAY, "Dustwallow Bay" },
    { AREA_TIDEFURY_COVE, "Tidefury Cove" },
    { AREA_DREADMURK_SHORE, "Dreadmurk Shore" },
    { AREA_ADDLES_STEAD, "Addles Stead" },
    { AREA_FIRE_PLUME_RIDGE, "Fire Plume Ridge" },
    { AREA_LAKKARI_TAR_PITS, "Lakkari Tar Pits" },
    { AREA_TERROR_RUN, "Terror Run" },
    { AREA_THE_SLITHERING_SCAR, "The Slithering Scar" },
    { AREA_MARSHALS_REFUGE, "Marshals Refuge" },
    { AREA_FUNGAL_ROCK, "Fungal Rock" },
    { AREA_GOLAKKA_HOT_SPRINGS, "Golakka Hot Springs" },
    { AREA_THE_LOCH, "The Loch" },
    { AREA_BEGGARS_HAUNT, "Beggars Haunt" },
    { AREA_KODO_GRAVEYARD, "Kodo Graveyard" },
    { AREA_GHOST_WALKER_POST, "Ghost Walker Post" },
    { AREA_SARTHERIS_STRAND, "Sartheris Strand" },
    { AREA_THUNDER_AXE_FORTRESS, "Thunder Axe Fortress" },
    { AREA_BOLGANS_HOLE, "Bolgans Hole" },
    { AREA_MANNOROC_COVEN, "Mannoroc Coven" },
    { AREA_SARGERON, "Sargeron" },
    { AREA_MAGRAM_VILLAGE, "Magram Village" },
    { AREA_GELKIS_VILLAGE, "Gelkis Village" },
    { AREA_VALLEY_OF_SPEARS, "Valley Of Spears" },
    { AREA_NIJELS_POINT, "Nijels Point" },
    { AREA_KOLKAR_VILLAGE, "Kolkar Village" },
    { AREA_HYJAL, "Hyjal" },
    { AREA_WINTERSPRING, "Winterspring" },
    { AREA_BLACKWOLF_RIVER, "Blackwolf River" },
    { AREA_KODO_ROCK, "Kodo Rock" },
    { AREA_HIDDEN_PATH, "Hidden Path" },
    { AREA_SPIRIT_ROCK, "Spirit Rock" },
    { AREA_SHRINE_OF_THE_DORMANT_FLAME, "Shrine Of The Dormant Flame" },
    { AREA_LAKE_ELUNEARA, "Lake Eluneara" },
    { AREA_THE_HARBORAGE, "The Harborage" },
    { AREA_OUTLAND, "Outland" },
    { AREA_CRAFTSMENS_TERRACE_UNUSED, "Craftsmens Terrace Unused" },
    { AREA_TRADESMENS_TERRACE_UNUSED, "Tradesmens Terrace Unused" },
    { AREA_THE_TEMPLE_GARDENS_UNUSED, "The Temple Gardens Unused" },
    { AREA_TEMPLE_OF_ELUNE_UNUSED, "Temple Of Elune Unused" },
    { AREA_CENARION_ENCLAVE_UNUSED, "Cenarion Enclave Unused" },
    { AREA_WARRIORS_TERRACE_UNUSED, "Warriors Terrace Unused" },
    { AREA_RUTTHERAN_VILLAGE, "Ruttheran Village" },
    { AREA_IRONBANDS_COMPOUND, "Ironbands Compound" },
    { AREA_THE_STOCKADE, "The Stockade" },
    { AREA_WAILING_CAVERNS, "Wailing Caverns" },
    { AREA_BLACKFATHOM_DEEPS0, "Blackfathom Deeps0" },
    { AREA_FRAY_ISLAND, "Fray Island" },
    { AREA_GNOMEREGAN1, "Gnomeregan1" },
    { AREA_RAZORFEN_DOWNS0, "Razorfen Downs0" },
    { AREA_BANETHIL_HOLLOW, "Banethil Hollow" },
    { AREA_SCARLET_MONASTERY, "Scarlet Monastery" },
    { AREA_JERODS_LANDING, "Jerods Landing" },
    { AREA_RIDGEPOINT_TOWER, "Ridgepoint Tower" },
    { AREA_THE_DARKENED_BANK, "The Darkened Bank" },
    { AREA_COLDRIDGE_PASS, "Coldridge Pass" },
    { AREA_CHILL_BREEZE_VALLEY, "Chill Breeze Valley" },
    { AREA_SHIMMER_RIDGE, "Shimmer Ridge" },
    { AREA_AMBERSTILL_RANCH, "Amberstill Ranch" },
    { AREA_THE_TUNDRID_HILLS, "The Tundrid Hills" },
    { AREA_SOUTH_GATE_PASS0, "South Gate Pass0" },
    { AREA_SOUTH_GATE_OUTPOST, "South Gate Outpost" },
    { AREA_NORTH_GATE_PASS0, "North Gate Pass0" },
    { AREA_NORTH_GATE_OUTPOST, "North Gate Outpost" },
    { AREA_GATES_OF_IRONFORGE, "Gates Of Ironforge" },
    { AREA_STILLWATER_POND, "Stillwater Pond" },
    { AREA_NIGHTMARE_VALE, "Nightmare Vale" },
    { AREA_VENOMWEB_VALE, "Venomweb Vale" },
    { AREA_THE_BULWARK1, "The Bulwark1" },
    { AREA_SOUTHFURY_RIVER1, "Southfury River1" },
    { AREA_SOUTHFURY_RIVER2, "Southfury River2" },
    { AREA_RAZORMANE_GROUNDS, "Razormane Grounds" },
    { AREA_SKULL_ROCK, "Skull Rock" },
    { AREA_PALEMANE_ROCK, "Palemane Rock" },
    { AREA_WINDFURY_RIDGE, "Windfury Ridge" },
    { AREA_THE_GOLDEN_PLAINS, "The Golden Plains" },
    { AREA_THE_ROLLING_PLAINS, "The Rolling Plains" },
    { AREA_DUN_ALGAZ1, "Dun Algaz1" },
    { AREA_DUN_ALGAZ2, "Dun Algaz2" },
    { AREA_NORTH_GATE_PASS1, "North Gate Pass1" },
    { AREA_SOUTH_GATE_PASS1, "South Gate Pass1" },
    { AREA_TWILIGHT_GROVE, "Twilight Grove" },
    { AREA_GM_ISLAND, "Gm Island" },
    { AREA_DELETE_ME1, "Delete Me1" },
    { AREA_SOUTHFURY_RIVER3, "Southfury River3" },
    { AREA_SOUTHFURY_RIVER4, "Southfury River4" },
    { AREA_THANDOL_SPAN1, "Thandol Span1" },
    { AREA_THANDOL_SPAN2, "Thandol Span2" },
    { AREA_PURGATION_ISLE, "Purgation Isle" },
    { AREA_THE_JANSEN_STEAD, "The Jansen Stead" },
    { AREA_THE_DEAD_ACRE, "The Dead Acre" },
    { AREA_THE_MOLSEN_FARM, "The Molsen Farm" },
    { AREA_STENDELS_POND, "Stendels Pond" },
    { AREA_THE_DAGGER_HILLS, "The Dagger Hills" },
    { AREA_DEMONTS_PLACE, "Demonts Place" },
    { AREA_THE_DUST_PLAINS, "The Dust Plains" },
    { AREA_STONESPLINTER_VALLEY, "Stonesplinter Valley" },
    { AREA_VALLEY_OF_KINGS, "Valley Of Kings" },
    { AREA_ALGAZ_STATION, "Algaz Station" },
    { AREA_BUCKLEBREE_FARM, "Bucklebree Farm" },
    { AREA_THE_SHINING_STRAND, "The Shining Strand" },
    { AREA_NORTH_TIDES_HOLLOW, "North Tides Hollow" },
    { AREA_GRIZZLEPAW_RIDGE, "Grizzlepaw Ridge" },
    { AREA_THE_VERDANT_FIELDS, "The Verdant Fields" },
    { AREA_GADGETZAN, "Gadgetzan" },
    { AREA_STEAMWHEEDLE_PORT, "Steamwheedle Port" },
    { AREA_ZUL_FARRAK0, "Zul Farrak0" },
    { AREA_SANDSORROW_WATCH, "Sandsorrow Watch" },
    { AREA_THISTLESHRUB_VALLEY, "Thistleshrub Valley" },
    { AREA_THE_GAPING_CHASM, "The Gaping Chasm" },
    { AREA_THE_NOXIOUS_LAIR, "The Noxious Lair" },
    { AREA_DUNEMAUL_COMPOUND, "Dunemaul Compound" },
    { AREA_EASTMOON_RUINS, "Eastmoon Ruins" },
    { AREA_WATERSPRING_FIELD, "Waterspring Field" },
    { AREA_ZALASHJIS_DEN, "Zalashjis Den" },
    { AREA_LANDS_END_BEACH, "Lands End Beach" },
    { AREA_WAVESTRIDER_BEACH, "Wavestrider Beach" },
    { AREA_ULDUM, "Uldum" },
    { AREA_VALLEY_OF_THE_WATCHERS, "Valley Of The Watchers" },
    { AREA_GUNSTANS_POST, "Gunstans Post" },
    { AREA_SOUTHMOON_RUINS, "Southmoon Ruins" },
    { AREA_RENDERS_CAMP, "Renders Camp" },
    { AREA_RENDERS_VALLEY, "Renders Valley" },
    { AREA_RENDERS_ROCK, "Renders Rock" },
    { AREA_STONEWATCH_TOWER, "Stonewatch Tower" },
    { AREA_GALARDELL_VALLEY, "Galardell Valley" },
    { AREA_LAKERIDGE_HIGHWAY, "Lakeridge Highway" },
    { AREA_THREE_CORNERS, "Three Corners" },
    { AREA_DIREFORGE_HILL, "Direforge Hill" },
    { AREA_RAPTOR_RIDGE, "Raptor Ridge" },
    { AREA_BLACK_CHANNEL_MARSH, "Black Channel Marsh" },
    { AREA_THE_GREEN_BELT0, "The Green Belt0" },
    { AREA_MOSSHIDE_FEN, "Mosshide Fen" },
    { AREA_THELGEN_ROCK, "Thelgen Rock" },
    { AREA_BLUEGILL_MARSH, "Bluegill Marsh" },
    { AREA_SALTSPRAY_GLEN, "Saltspray Glen" },
    { AREA_SUNDOWN_MARSH, "Sundown Marsh" },
    { AREA_THE_GREEN_BELT1, "The Green Belt1" },
    { AREA_ANGERFANG_ENCAMPMENT, "Angerfang Encampment" },
    { AREA_GRIM_BATOL, "Grim Batol" },
    { AREA_DRAGONMAW_GATES, "Dragonmaw Gates" },
    { AREA_THE_LOST_FLEET, "The Lost Fleet" },
    { AREA_DARROW_HILL0, "Darrow Hill0" },
    { AREA_THORADINS_WALL1, "Thoradins Wall1" },
    { AREA_WEBWINDER_PATH, "Webwinder Path" },
    { AREA_THE_HUSHED_BANK, "The Hushed Bank" },
    { AREA_MANOR_MISTMANTLE, "Manor Mistmantle" },
    { AREA_CAMP_MOJACHE, "Camp Mojache" },
    { AREA_GRIMTOTEM_COMPOUND, "Grimtotem Compound" },
    { AREA_THE_WRITHING_DEEP, "The Writhing Deep" },
    { AREA_WILDWIND_LAKE, "Wildwind Lake" },
    { AREA_GORDUNNI_OUTPOST, "Gordunni Outpost" },
    { AREA_MOK_GORDUN, "Mok Gordun" },
    { AREA_FERAL_SCAR_VALE, "Feral Scar Vale" },
    { AREA_FRAYFEATHER_HIGHLANDS, "Frayfeather Highlands" },
    { AREA_IDLEWIND_LAKE, "Idlewind Lake" },
    { AREA_THE_FORGOTTEN_COAST, "The Forgotten Coast" },
    { AREA_EAST_PILLAR, "East Pillar" },
    { AREA_WEST_PILLAR, "West Pillar" },
    { AREA_DREAM_BOUGH, "Dream Bough" },
    { AREA_JADEMIR_LAKE, "Jademir Lake" },
    { AREA_ONEIROS, "Oneiros" },
    { AREA_RUINS_OF_RAVENWIND, "Ruins Of Ravenwind" },
    { AREA_RAGE_SCAR_HOLD, "Rage Scar Hold" },
    { AREA_FEATHERMOON_STRONGHOLD, "Feathermoon Stronghold" },
    { AREA_RUINS_OF_SOLARSAL, "Ruins Of Solarsal" },
    { AREA_LOWER_WILDS_UNUSED, "Lower Wilds Unused" },
    { AREA_THE_TWIN_COLOSSALS, "The Twin Colossals" },
    { AREA_SARDOR_ISLE, "Sardor Isle" },
    { AREA_ISLE_OF_DREAD, "Isle Of Dread" },
    { AREA_HIGH_WILDERNESS, "High Wilderness" },
    { AREA_LOWER_WILDS, "Lower Wilds" },
    { AREA_SOUTHERN_BARRENS, "Southern Barrens" },
    { AREA_SOUTHERN_GOLD_ROAD, "Southern Gold Road" },
    { AREA_ZUL_FARRAK1, "Zul Farrak1" },
    { AREA_UNUSED_ALCAZ_ISLAND, "Unused Alcaz Island" },
    { AREA_TIMBERMAW_HOLD0, "Timbermaw Hold0" },
    { AREA_VANNDIR_ENCAMPMENT, "Vanndir Encampment" },
    { AREA_TEST_AZSHARA, "Test Azshara" },
    { AREA_LEGASH_ENCAMPMENT, "Legash Encampment" },
    { AREA_THALASSIAN_BASE_CAMP, "Thalassian Base Camp" },
    { AREA_RUINS_OF_ELDARATH, "Ruins Of Eldarath" },
    { AREA_HETAERAS_CLUTCH, "Hetaeras Clutch" },
    { AREA_TEMPLE_OF_ZIN_MALOR, "Temple Of Zin Malor" },
    { AREA_BEARS_HEAD, "Bears Head" },
    { AREA_URSOLAN, "Ursolan" },
    { AREA_TEMPLE_OF_ARKKORAN, "Temple Of Arkkoran" },
    { AREA_BAY_OF_STORMS, "Bay Of Storms" },
    { AREA_THE_SHATTERED_STRAND, "The Shattered Strand" },
    { AREA_TOWER_OF_ELDARA, "Tower Of Eldara" },
    { AREA_JAGGED_REEF, "Jagged Reef" },
    { AREA_SOUTHRIDGE_BEACH, "Southridge Beach" },
    { AREA_RAVENCREST_MONUMENT, "Ravencrest Monument" },
    { AREA_FORLORN_RIDGE, "Forlorn Ridge" },
    { AREA_LAKE_MENNAR, "Lake Mennar" },
    { AREA_SHADOWSONG_SHRINE, "Shadowsong Shrine" },
    { AREA_HALDARR_ENCAMPMENT, "Haldarr Encampment" },
    { AREA_VALORMOK, "Valormok" },
    { AREA_THE_RUINED_REACHES, "The Ruined Reaches" },
    { AREA_THE_TALONDEEP_PATH0, "The Talondeep Path0" },
    { AREA_THE_TALONDEEP_PATH1, "The Talondeep Path1" },
    { AREA_ROCKTUSK_FARM, "Rocktusk Farm" },
    { AREA_JAGGEDSWINE_FARM, "Jaggedswine Farm" },
    { AREA_RAZORFEN_DOWNS1, "Razorfen Downs1" },
    { AREA_LOST_RIGGER_COVE, "Lost Rigger Cove" },
    { AREA_ULDAMAN0, "Uldaman0" },
    { AREA_LORDAMERE_LAKE1, "Lordamere Lake1" },
    { AREA_LORDAMERE_LAKE2, "Lordamere Lake2" },
    { AREA_GALLOWS_CORNER, "Gallows Corner" },
    { AREA_SILITHUS, "Silithus" },
    { AREA_EMERALD_FOREST, "Emerald Forest" },
    { AREA_SUNKEN_TEMPLE, "Sunken Temple" },
    { AREA_DREADMAUL_HOLD, "Dreadmaul Hold" },
    { AREA_NETHERGARDE_KEEP, "Nethergarde Keep" },
    { AREA_DREADMAUL_POST, "Dreadmaul Post" },
    { AREA_SERPENTS_COIL, "Serpents Coil" },
    { AREA_ALTAR_OF_STORMS1, "Altar Of Storms1" },
    { AREA_FIREWATCH_RIDGE, "Firewatch Ridge" },
    { AREA_THE_SLAG_PIT, "The Slag Pit" },
    { AREA_THE_SEA_OF_CINDERS, "The Sea Of Cinders" },
    { AREA_BLACKROCK_MOUNTAIN2, "Blackrock Mountain2" },
    { AREA_THORIUM_POINT, "Thorium Point" },
    { AREA_GARRISON_ARMORY, "Garrison Armory" },
    { AREA_THE_TEMPLE_OF_ATAL_HAKKAR, "The Temple Of Atal Hakkar" },
    { AREA_UNDERCITY, "Undercity" },
    { AREA_ULDAMAN1, "Uldaman1" },
    { AREA_NOT_USED_DEADMINES, "Not Used Deadmines" },
    { AREA_STORMWIND_CITY, "Stormwind City" },
    { AREA_IRONFORGE, "Ironforge" },
    { AREA_SPLITHOOF_HOLD, "Splithoof Hold" },
    { AREA_THE_CAPE_OF_STRANGLETHORN, "The Cape Of Stranglethorn" },
    { AREA_SOUTHERN_SAVAGE_COAST, "Southern Savage Coast" },
    { AREA_UNUSED_THE_DEADMINES_002, "Unused The Deadmines 002" },
    { AREA_UNUSED_IRONCLAD_COVE_003, "Unused Ironclad Cove 003" },
    { AREA_THE_DEADMINES, "The Deadmines" },
    { AREA_IRONCLAD_COVE, "Ironclad Cove" },
    { AREA_BLACKROCK_SPIRE, "Blackrock Spire" },
    { AREA_BLACKROCK_DEPTHS, "Blackrock Depths" },
    { AREA_RAPTOR_GROUNDS_UNUSED, "Raptor Grounds Unused" },
    { AREA_GROLDOM_FARM_UNUSED, "Groldom Farm Unused" },
    { AREA_MORSHAN_BASE_CAMP, "Morshan Base Camp" },
    { AREA_HONORS_STAND_UNUSED, "Honors Stand Unused" },
    { AREA_BLACKTHORN_RIDGE_UNUSED, "Blackthorn Ridge Unused" },
    { AREA_BRAMBLESCAR_UNUSED, "Bramblescar Unused" },
    { AREA_AGAMAGOR_UNUSED, "Agamagor Unused" },
    { AREA_VALLEY_OF_HEROES, "Valley Of Heroes" },
    { AREA_ORGRIMMAR, "Orgrimmar" },
    { AREA_THUNDER_BLUFF, "Thunder Bluff" },
    { AREA_ELDER_RISE, "Elder Rise" },
    { AREA_SPIRIT_RISE, "Spirit Rise" },
    { AREA_HUNTER_RISE, "Hunter Rise" },
    { AREA_DARNASSUS, "Darnassus" },
    { AREA_CENARION_ENCLAVE, "Cenarion Enclave" },
    { AREA_CRAFTSMENS_TERRACE, "Craftsmens Terrace" },
    { AREA_WARRIORS_TERRACE, "Warriors Terrace" },
    { AREA_THE_TEMPLE_GARDENS, "The Temple Gardens" },
    { AREA_TRADESMENS_TERRACE, "Tradesmens Terrace" },
    { AREA_GAVINS_NAZE, "Gavins Naze" },
    { AREA_SOFERAS_NAZE, "Soferas Naze" },
    { AREA_CORRAHNS_DAGGER, "Corrahns Dagger" },
    { AREA_THE_HEADLAND, "The Headland" },
    { AREA_MISTY_SHORE, "Misty Shore" },
    { AREA_DANDREDS_FOLD, "Dandreds Fold" },
    { AREA_GROWLESS_CAVE, "Growless Cave" },
    { AREA_CHILLWIND_POINT, "Chillwind Point" },
    { AREA_RAPTOR_GROUNDS, "Raptor Grounds" },
    { AREA_BRAMBLESCAR, "Bramblescar" },
    { AREA_THORN_HILL, "Thorn Hill" },
    { AREA_AGAMAGOR, "Agamagor" },
    { AREA_BLACKTHORN_RIDGE, "Blackthorn Ridge" },
    { AREA_HONORS_STAND, "Honors Stand" },
    { AREA_THE_MORSHAN_RAMPART, "The Morshan Rampart" },
    { AREA_GROLDOM_FARM, "Groldom Farm" },
    { AREA_RAZORFEN_KRAUL1, "Razorfen Kraul1" },
    { AREA_THE_GREAT_LIFT1, "The Great Lift1" },
    { AREA_MISTVALE_VALLEY, "Mistvale Valley" },
    { AREA_NEKMANI_WELLSPRING, "Nekmani Wellspring" },
    { AREA_BLOODSAIL_COMPOUND, "Bloodsail Compound" },
    { AREA_VENTURE_CO_BASE_CAMP, "Venture Co Base Camp" },
    { AREA_GURUBASHI_ARENA, "Gurubashi Arena" },
    { AREA_SPIRIT_DEN, "Spirit Den" },
    { AREA_THE_CRIMSON_VEIL, "The Crimson Veil" },
    { AREA_THE_RIPTIDE, "The Riptide" },
    { AREA_THE_DAMSELS_LUCK, "The Damsels Luck" },
    { AREA_VENTURE_CO_OPERATIONS_CENTER, "Venture Co Operations Center" },
    { AREA_DEADWOOD_VILLAGE, "Deadwood Village" },
    { AREA_FELPAW_VILLAGE, "Felpaw Village" },
    { AREA_JAEDENAR, "Jaedenar" },
    { AREA_BLOODVENOM_RIVER, "Bloodvenom River" },
    { AREA_BLOODVENOM_FALLS, "Bloodvenom Falls" },
    { AREA_SHATTER_SCAR_VALE, "Shatter Scar Vale" },
    { AREA_IRONTREE_WOODS, "Irontree Woods" },
    { AREA_IRONTREE_CAVERN, "Irontree Cavern" },
    { AREA_TIMBERMAW_HOLD1, "Timbermaw Hold1" },
    { AREA_SHADOW_HOLD, "Shadow Hold" },
    { AREA_SHRINE_OF_THE_DECEIVER, "Shrine Of The Deceiver" },
    { AREA_ITHARIUSS_CAVE, "Ithariuss Cave" },
    { AREA_SORROWMURK, "Sorrowmurk" },
    { AREA_DRAENILDUR_VILLAGE, "Draenildur Village" },
    { AREA_SPLINTERSPEAR_JUNCTION, "Splinterspear Junction" },
    { AREA_STAGALBOG, "Stagalbog" },
    { AREA_THE_SHIFTING_MIRE, "The Shifting Mire" },
    { AREA_STAGALBOG_CAVE, "Stagalbog Cave" },
    { AREA_WITHERBARK_CAVERNS, "Witherbark Caverns" },
    { AREA_THORADINS_WALL2, "Thoradins Wall2" },
    { AREA_BOULDERGOR, "Bouldergor" },
    { AREA_VALLEY_OF_FANGS, "Valley Of Fangs" },
    { AREA_THE_DUSTBOWL, "The Dustbowl" },
    { AREA_MIRAGE_FLATS, "Mirage Flats" },
    { AREA_FEATHERBEARDS_HOVEL, "Featherbeards Hovel" },
    { AREA_SHINDIGGERS_CAMP, "Shindiggers Camp" },
    { AREA_PLAGUEMIST_RAVINE, "Plaguemist Ravine" },
    { AREA_VALORWIND_LAKE, "Valorwind Lake" },
    { AREA_AGOLWATHA, "Agolwatha" },
    { AREA_HIRIWATHA, "Hiriwatha" },
    { AREA_THE_CREEPING_RUIN, "The Creeping Ruin" },
    { AREA_BOGENS_LEDGE, "Bogens Ledge" },
    { AREA_THE_MAKERS_TERRACE, "The Makers Terrace" },
    { AREA_DUSTWIND_GULCH, "Dustwind Gulch" },
    { AREA_SHAOLWATHA, "Shaolwatha" },
    { AREA_NOONSHADE_RUINS, "Noonshade Ruins" },
    { AREA_BROKEN_PILLAR, "Broken Pillar" },
    { AREA_ABYSSAL_SANDS, "Abyssal Sands" },
    { AREA_SOUTHBREAK_SHORE, "Southbreak Shore" },
    { AREA_CAVERNS_OF_TIME0, "Caverns Of Time0" },
    { AREA_THE_MARSHLANDS, "The Marshlands" },
    { AREA_IRONSTONE_PLATEAU, "Ironstone Plateau" },
    { AREA_BLACKCHAR_CAVE, "Blackchar Cave" },
    { AREA_TANNER_CAMP, "Tanner Camp" },
    { AREA_DUSTFIRE_VALLEY, "Dustfire Valley" },
    { AREA_ZUL_GURUB1, "Zul Gurub1" },
    { AREA_MISTY_REED_POST, "Misty Reed Post" },
    { AREA_BLOODVENOM_POST, "Bloodvenom Post" },
    { AREA_TALONBRANCH_GLADE, "Talonbranch Glade" },
    { AREA_STRATHOLME0, "Stratholme0" },
    { AREA_UNUSED_SHADOWFANG_KEEP_003, "Unused Shadowfang Keep 003" },
    { AREA_SCHOLOMANCE, "Scholomance" },
    { AREA_TWILIGHT_VALE, "Twilight Vale" },
    { AREA_TWILIGHT_SHORE, "Twilight Shore" },
    { AREA_ALCAZ_ISLAND, "Alcaz Island" },
    { AREA_DARKCLOUD_PINNACLE, "Darkcloud Pinnacle" },
    { AREA_DAWNING_WOOD_CATACOMBS, "Dawning Wood Catacombs" },
    { AREA_STONEWATCH_KEEP, "Stonewatch Keep" },
    { AREA_MARAUDON, "Maraudon" },
    { AREA_STOUTLAGER_INN, "Stoutlager Inn" },
    { AREA_THUNDERBREW_DISTILLERY, "Thunderbrew Distillery" },
    { AREA_MENETHIL_KEEP, "Menethil Keep" },
    { AREA_DEEPWATER_TAVERN, "Deepwater Tavern" },
    { AREA_SHADOW_GRAVE, "Shadow Grave" },
    { AREA_BRILL_TOWN_HALL, "Brill Town Hall" },
    { AREA_GALLOWS_END_TAVERN, "Gallows End Tavern" },
    { AREA_THE_POOLS_OF_VISION_UNUSED, "The Pools Of Vision Unused" },
    { AREA_DREADMIST_DEN, "Dreadmist Den" },
    { AREA_BAELDUN_KEEP, "Baeldun Keep" },
    { AREA_EMBERSTRIFES_DEN, "Emberstrifes Den" },
    { AREA_ONYXIAS_LAIR, "Onyxias Lair" },
    { AREA_WINDSHEAR_MINE, "Windshear Mine" },
    { AREA_ROLANDS_DOOM, "Rolands Doom" },
    { AREA_BATTLE_RING, "Battle Ring" },
    { AREA_THE_POOLS_OF_VISION, "The Pools Of Vision" },
    { AREA_SHADOWBREAK_RAVINE, "Shadowbreak Ravine" },
    { AREA_BROKEN_SPEAR_VILLAGE, "Broken Spear Village" },
    { AREA_WHITEREACH_POST, "Whitereach Post" },
    { AREA_GORNIA, "Gornia" },
    { AREA_ZANES_EYE_CRATER, "Zanes Eye Crater" },
    { AREA_MIRAGE_RACEWAY, "Mirage Raceway" },
    { AREA_FROSTSABER_ROCK, "Frostsaber Rock" },
    { AREA_THE_HIDDEN_GROVE, "The Hidden Grove" },
    { AREA_TIMBERMAW_POST, "Timbermaw Post" },
    { AREA_WINTERFALL_VILLAGE, "Winterfall Village" },
    { AREA_MAZTHORIL, "Mazthoril" },
    { AREA_FROSTFIRE_HOT_SPRINGS, "Frostfire Hot Springs" },
    { AREA_ICE_THISTLE_HILLS, "Ice Thistle Hills" },
    { AREA_DUN_MANDARR, "Dun Mandarr" },
    { AREA_FROSTWHISPER_GORGE, "Frostwhisper Gorge" },
    { AREA_OWL_WING_THICKET, "Owl Wing Thicket" },
    { AREA_LAKE_KEL_THERIL, "Lake Kel Theril" },
    { AREA_THE_RUINS_OF_KEL_THERIL, "The Ruins Of Kel Theril" },
    { AREA_STARFALL_VILLAGE, "Starfall Village" },
    { AREA_BAN_THALLOW_BARROW_DEN, "Ban Thallow Barrow Den" },
    { AREA_EVERLOOK, "Everlook" },
    { AREA_DARKWHISPER_GORGE, "Darkwhisper Gorge" },
    { AREA_DEEPRUN_TRAM, "Deeprun Tram" },
    { AREA_THE_FUNGAL_VALE, "The Fungal Vale" },
    { AREA_UNUSED_THE_MARRIS_STEAD, "Unused The Marris Stead" },
    { AREA_THE_MARRIS_STEAD, "The Marris Stead" },
    { AREA_THE_UNDERCROFT, "The Undercroft" },
    { AREA_DARROWSHIRE, "Darrowshire" },
    { AREA_CROWN_GUARD_TOWER, "Crown Guard Tower" },
    { AREA_CORINS_CROSSING, "Corins Crossing" },
    { AREA_SCARLET_BASE_CAMP, "Scarlet Base Camp" },
    { AREA_TYRS_HAND, "Tyrs Hand" },
    { AREA_THE_SCARLET_BASILICA, "The Scarlet Basilica" },
    { AREA_LIGHTS_HOPE_CHAPEL, "Lights Hope Chapel" },
    { AREA_BROWMAN_MILL, "Browman Mill" },
    { AREA_THE_NOXIOUS_GLADE, "The Noxious Glade" },
    { AREA_EASTWALL_TOWER, "Eastwall Tower" },
    { AREA_NORTHDALE, "Northdale" },
    { AREA_ZUL_MASHAR, "Zul Mashar" },
    { AREA_MAZRA_ALOR, "Mazra Alor" },
    { AREA_NORTHPASS_TOWER, "Northpass Tower" },
    { AREA_QUEL_LITHIEN_LODGE, "Quel Lithien Lodge" },
    { AREA_PLAGUEWOOD, "Plaguewood" },
    { AREA_SCOURGEHOLD, "Scourgehold" },
    { AREA_STRATHOLME1, "Stratholme1" },
    { AREA_UNUSED_STRATHOLME, "Unused Stratholme" },
    { AREA_DARROWMERE_LAKE0, "Darrowmere Lake0" },
    { AREA_CAER_DARROW, "Caer Darrow" },
    { AREA_DARROWMERE_LAKE1, "Darrowmere Lake1" },
    { AREA_CAVERNS_OF_TIME1, "Caverns Of Time1" },
    { AREA_THISTLEFUR_VILLAGE, "Thistlefur Village" },
    { AREA_THE_QUAGMIRE, "The Quagmire" },
    { AREA_WINDBREAK_CANYON, "Windbreak Canyon" },
    { AREA_SOUTH_SEAS0, "South Seas0" },
    { AREA_THE_GREAT_SEA3, "The Great Sea3" },
    { AREA_THE_GREAT_SEA4, "The Great Sea4" },
    { AREA_THE_GREAT_SEA5, "The Great Sea5" },
    { AREA_THE_GREAT_SEA6, "The Great Sea6" },
    { AREA_THE_VEILED_SEA1, "The Veiled Sea1" },
    { AREA_THE_VEILED_SEA2, "The Veiled Sea2" },
    { AREA_THE_VEILED_SEA3, "The Veiled Sea3" },
    { AREA_THE_VEILED_SEA4, "The Veiled Sea4" },
    { AREA_THE_VEILED_SEA5, "The Veiled Sea5" },
    { AREA_RAZOR_HILL_BARRACKS, "Razor Hill Barracks" },
    { AREA_SOUTH_SEAS1, "South Seas1" },
    { AREA_THE_GREAT_SEA7, "The Great Sea7" },
    { AREA_BLOODTOOTH_CAMP, "Bloodtooth Camp" },
    { AREA_FOREST_SONG, "Forest Song" },
    { AREA_GREENPAW_VILLAGE, "Greenpaw Village" },
    { AREA_SILVERWING_OUTPOST, "Silverwing Outpost" },
    { AREA_NIGHTHAVEN, "Nighthaven" },
    { AREA_SHRINE_OF_REMULOS, "Shrine Of Remulos" },
    { AREA_STORMRAGE_BARROW_DENS, "Stormrage Barrow Dens" },
    { AREA_THE_GREAT_SEA8, "The Great Sea8" },
    { AREA_THE_GREAT_SEA9, "The Great Sea9" },
    { AREA_THE_BLACK_MORASS, "The Black Morass" },
    { AREA_OLD_HILLSBRAD_FOOTHILLS, "Old Hillsbrad Foothills" },
    { AREA_TARREN_MILL1, "Tarren Mill1" },
    { AREA_SOUTHSHORE1, "Southshore1" },
    { AREA_DURNHOLDE_KEEP1, "Durnholde Keep1" },
    { AREA_DUN_GAROK1, "Dun Garok1" },
    { AREA_HILLSBRAD_FIELDS1, "Hillsbrad Fields1" },
    { AREA_EASTERN_STRAND1, "Eastern Strand1" },
    { AREA_NETHANDER_STEAD1, "Nethander Stead1" },
    { AREA_DARROW_HILL1, "Darrow Hill1" },
    { AREA_SOUTHPOINT_TOWER1, "Southpoint Tower1" },
    { AREA_THORADINS_WALL3, "Thoradins Wall3" },
    { AREA_WESTERN_STRAND1, "Western Strand1" },
    { AREA_AZURELODE_MINE1, "Azurelode Mine1" },
    { AREA_THE_GREAT_SEA10, "The Great Sea10" },
    { AREA_THE_GREAT_SEA11, "The Great Sea11" },
    { AREA_THE_GREAT_SEA12, "The Great Sea12" },
    { AREA_THE_FORBIDDING_SEA1, "The Forbidding Sea1" },
    { AREA_THE_FORBIDDING_SEA2, "The Forbidding Sea2" },
    { AREA_THE_FORBIDDING_SEA3, "The Forbidding Sea3" },
    { AREA_THE_FORBIDDING_SEA4, "The Forbidding Sea4" },
    { AREA_TETHRIS_ARAN, "Tethris Aran" },
    { AREA_ETHEL_RETHOR, "Ethel Rethor" },
    { AREA_RANAZJAR_ISLE, "Ranazjar Isle" },
    { AREA_KORMEKS_HUT, "Kormeks Hut" },
    { AREA_SHADOWPREY_VILLAGE, "Shadowprey Village" },
    { AREA_BLACKROCK_PASS, "Blackrock Pass" },
    { AREA_MORGANS_VIGIL, "Morgans Vigil" },
    { AREA_SLITHER_ROCK, "Slither Rock" },
    { AREA_TERROR_WING_PATH, "Terror Wing Path" },
    { AREA_DRACODAR, "Dracodar" },
    { AREA_RAGEFIRE_CHASM, "Ragefire Chasm" },
    { AREA_NIGHTSONG_WOODS, "Nightsong Woods" },
    { AREA_THE_VEILED_SEA6, "The Veiled Sea6" },
    { AREA_MORLOS_ARAN, "Morlos Aran" },
    { AREA_EMERALD_SANCTUARY, "Emerald Sanctuary" },
    { AREA_JADEFIRE_GLEN, "Jadefire Glen" },
    { AREA_RUINS_OF_CONSTELLAS, "Ruins Of Constellas" },
    { AREA_BITTER_REACHES, "Bitter Reaches" },
    { AREA_RISE_OF_THE_DEFILER, "Rise Of The Defiler" },
    { AREA_LARISS_PAVILION, "Lariss Pavilion" },
    { AREA_WOODPAW_HILLS, "Woodpaw Hills" },
    { AREA_WOODPAW_DEN, "Woodpaw Den" },
    { AREA_VERDANTIS_RIVER, "Verdantis River" },
    { AREA_RUINS_OF_ISILDIEN, "Ruins Of Isildien" },
    { AREA_GRIMTOTEM_POST, "Grimtotem Post" },
    { AREA_CAMP_APARAJE, "Camp Aparaje" },
    { AREA_MALAKAJIN, "Malakajin" },
    { AREA_BOULDERSLIDE_RAVINE, "Boulderslide Ravine" },
    { AREA_SISHIR_CANYON, "Sishir Canyon" },
    { AREA_DIRE_MAUL0, "Dire Maul0" },
    { AREA_DEADWIND_RAVINE, "Deadwind Ravine" },
    { AREA_DIAMONDHEAD_RIVER, "Diamondhead River" },
    { AREA_ARIDENS_CAMP, "Aridens Camp" },
    { AREA_THE_VICE, "The Vice" },
    { AREA_KARAZHAN, "Karazhan" },
    { AREA_MORGANS_PLOT, "Morgans Plot" },
    { AREA_DIRE_MAUL1, "Dire Maul1" },
    { AREA_ALTERAC_VALLEY0, "Alterac Valley0" },
    { AREA_SCRABBLESCREWS_CAMP, "Scrabblescrews Camp" },
    { AREA_JADEFIRE_RUN, "Jadefire Run" },
    { AREA_THONDRORIL_RIVER0, "Thondroril River0" },
    { AREA_THONDRORIL_RIVER1, "Thondroril River1" },
    { AREA_LAKE_MERELDAR, "Lake Mereldar" },
    { AREA_PESTILENT_SCAR, "Pestilent Scar" },
    { AREA_THE_INFECTIS_SCAR, "The Infectis Scar" },
    { AREA_BLACKWOOD_LAKE, "Blackwood Lake" },
    { AREA_EASTWALL_GATE, "Eastwall Gate" },
    { AREA_TERRORWEB_TUNNEL, "Terrorweb Tunnel" },
    { AREA_TERRORDALE, "Terrordale" },
    { AREA_KARGATHIA_KEEP, "Kargathia Keep" },
    { AREA_VALLEY_OF_BONES, "Valley Of Bones" },
    { AREA_BLACKWING_LAIR, "Blackwing Lair" },
    { AREA_DEADMANS_CROSSING, "Deadmans Crossing" },
    { AREA_MOLTEN_CORE, "Molten Core" },
    { AREA_THE_SCARAB_WALL, "The Scarab Wall" },
    { AREA_SOUTHWIND_VILLAGE, "Southwind Village" },
    { AREA_TWILIGHT_BASE_CAMP, "Twilight Base Camp" },
    { AREA_THE_CRYSTAL_VALE, "The Crystal Vale" },
    { AREA_THE_SCARAB_DAIS, "The Scarab Dais" },
    { AREA_HIVE_ASHI, "Hive Ashi" },
    { AREA_HIVE_ZORA, "Hive Zora" },
    { AREA_HIVE_REGAL, "Hive Regal" },
    { AREA_SHRINE_OF_THE_FALLEN_WARRIOR, "Shrine Of The Fallen Warrior" },
    { AREA_UNUSED_ALTERAC_VALLEY, "Unused Alterac Valley" },
    { AREA_BLACKFATHOM_DEEPS1, "Blackfathom Deeps1" },
    { AREA_ON_MAP_DUNGEON4, "On Map Dungeon4" },
    { AREA_THE_MASTERS_CELLAR, "The Masters Cellar" },
    { AREA_STONEWROUGHT_PASS, "Stonewrought Pass" },
    { AREA_ALTERAC_VALLEY1, "Alterac Valley1" },
    { AREA_THE_RUMBLE_CAGE, "The Rumble Cage" },
    { AREA_CHUNK_TEST, "Chunk Test" },
    { AREA_ZORAMGAR_OUTPOST, "Zoramgar Outpost" },
    { AREA_HALL_OF_LEGENDS, "Hall Of Legends" },
    { AREA_CHAMPIONS_HALL, "Champions Hall" },
    { AREA_GROSHGOK_COMPOUND, "Groshgok Compound" },
    { AREA_SLEEPING_GORGE, "Sleeping Gorge" },
    { AREA_IRONDEEP_MINE, "Irondeep Mine" },
    { AREA_STONEHEARTH_OUTPOST, "Stonehearth Outpost" },
    { AREA_DUN_BALDAR, "Dun Baldar" },
    { AREA_ICEWING_PASS, "Icewing Pass" },
    { AREA_FROSTWOLF_VILLAGE, "Frostwolf Village" },
    { AREA_TOWER_POINT, "Tower Point" },
    { AREA_COLDTOOTH_MINE, "Coldtooth Mine" },
    { AREA_WINTERAX_HOLD, "Winterax Hold" },
    { AREA_ICEBLOOD_GARRISON, "Iceblood Garrison" },
    { AREA_FROSTWOLF_KEEP, "Frostwolf Keep" },
    { AREA_TORKREN_FARM, "Torkren Farm" },
    { AREA_FROST_DAGGER_PASS, "Frost Dagger Pass" },
    { AREA_IRONSTONE_CAMP, "Ironstone Camp" },
    { AREA_WEAZELS_CRATER, "Weazels Crater" },
    { AREA_TAHONDA_RUINS, "Tahonda Ruins" },
    { AREA_FIELD_OF_STRIFE, "Field Of Strife" },
    { AREA_ICEWING_CAVERN, "Icewing Cavern" },
    { AREA_VALORS_REST, "Valors Rest" },
    { AREA_THE_SWARMING_PILLAR, "The Swarming Pillar" },
    { AREA_TWILIGHT_POST, "Twilight Post" },
    { AREA_TWILIGHT_OUTPOST, "Twilight Outpost" },
    { AREA_RAVAGED_TWILIGHT_CAMP, "Ravaged Twilight Camp" },
    { AREA_SHALZARUS_LAIR, "Shalzarus Lair" },
    { AREA_TALRENDIS_POINT, "Talrendis Point" },
    { AREA_RETHRESS_SANCTUM, "Rethress Sanctum" },
    { AREA_MOON_HORROR_DEN, "Moon Horror Den" },
    { AREA_SCALEBEARDS_CAVE, "Scalebeards Cave" },
    { AREA_BOULDERSLIDE_CAVERN, "Boulderslide Cavern" },
    { AREA_WARSONG_LABOR_CAMP, "Warsong Labor Camp" },
    { AREA_CHILLWIND_CAMP, "Chillwind Camp" },
    { AREA_THE_MAUL, "The Maul" },
    { AREA_THE_MAUL_UNUSED, "The Maul Unused" },
    { AREA_BONES_OF_GRAKKAROND, "Bones Of Grakkarond" },
    { AREA_WARSONG_GULCH, "Warsong Gulch" },
    { AREA_FROSTWOLF_GRAVEYARD, "Frostwolf Graveyard" },
    { AREA_FROSTWOLF_PASS, "Frostwolf Pass" },
    { AREA_DUN_BALDAR_PASS, "Dun Baldar Pass" },
    { AREA_ICEBLOOD_GRAVEYARD, "Iceblood Graveyard" },
    { AREA_SNOWFALL_GRAVEYARD, "Snowfall Graveyard" },
    { AREA_STONEHEARTH_GRAVEYARD, "Stonehearth Graveyard" },
    { AREA_STORMPIKE_GRAVEYARD, "Stormpike Graveyard" },
    { AREA_ICEWING_BUNKER, "Icewing Bunker" },
    { AREA_STONEHEARTH_BUNKER, "Stonehearth Bunker" },
    { AREA_WILDPAW_RIDGE, "Wildpaw Ridge" },
    { AREA_REVANTUSK_VILLAGE, "Revantusk Village" },
    { AREA_ROCK_OF_DUROTAN, "Rock Of Durotan" },
    { AREA_SILVERWING_GROVE, "Silverwing Grove" },
    { AREA_WARSONG_LUMBER_MILL, "Warsong Lumber Mill" },
    { AREA_SILVERWING_HOLD, "Silverwing Hold" },
    { AREA_WILDPAW_CAVERN, "Wildpaw Cavern" },
    { AREA_THE_VEILED_CLEFT, "The Veiled Cleft" },
    { AREA_YOJAMBA_ISLE, "Yojamba Isle" },
    { AREA_ARATHI_BASIN, "Arathi Basin" },
    { AREA_THE_COIL, "The Coil" },
    { AREA_ALTAR_OF_HIREEK, "Altar Of Hireek" },
    { AREA_SHADRAZAAR, "Shadrazaar" },
    { AREA_HAKKARI_GROUNDS, "Hakkari Grounds" },
    { AREA_NAZE_OF_SHIRVALLAH, "Naze Of Shirvallah" },
    { AREA_TEMPLE_OF_BETHEKK, "Temple Of Bethekk" },
    { AREA_THE_BLOODFIRE_PIT, "The Bloodfire Pit" },
    { AREA_ALTAR_OF_THE_BLOOD_GOD, "Altar Of The Blood God" },
    { AREA_ZANZAS_RISE, "Zanzas Rise" },
    { AREA_EDGE_OF_MADNESS, "Edge Of Madness" },
    { AREA_TROLLBANE_HALL, "Trollbane Hall" },
    { AREA_DEFILERS_DEN, "Defilers Den" },
    { AREA_PAGLES_POINTE, "Pagles Pointe" },
    { AREA_FARM, "Farm" },
    { AREA_BLACKSMITH, "Blacksmith" },
    { AREA_LUMBER_MILL, "Lumber Mill" },
    { AREA_GOLD_MINE, "Gold Mine" },
    { AREA_STABLES, "Stables" },
    { AREA_CENARION_HOLD, "Cenarion Hold" },
    { AREA_STAGHELM_POINT, "Staghelm Point" },
    { AREA_BRONZEBEARD_ENCAMPMENT, "Bronzebeard Encampment" },
    { AREA_AHN_QIRAJ, "Ahn Qiraj" },
    { AREA_RUINS_OF_AHN_QIRAJ0, "Ruins Of Ahn Qiraj0" },
    { AREA_TWILIGHTS_RUN, "Twilights Run" },
    { AREA_ORTELLS_HIDEOUT, "Ortells Hideout" },
    { AREA_SCARAB_TERRACE, "Scarab Terrace" },
    { AREA_GENERALS_TERRACE, "Generals Terrace" },
    { AREA_THE_RESERVOIR, "The Reservoir" },
    { AREA_THE_HATCHERY, "The Hatchery" },
    { AREA_THE_COMB, "The Comb" },
    { AREA_WATCHERS_TERRACE, "Watchers Terrace" },
    { AREA_RUINS_OF_AHN_QIRAJ1, "Ruins Of Ahn Qiraj1" },
    { AREA_NAXXRAMAS, "Naxxramas" },
    { AREA_CITY, "City" },
    { AREA_GATES_OF_AHN_QIRAJ, "Gates Of Ahn Qiraj" },
    { AREA_RAVENHOLDT_MANOR, "Ravenholdt Manor" },
    { 0, NULL }
};

typedef enum {
    MAP_EASTERN_KINGDOMS = 0x000,
    MAP_KALIMDOR = 0x001,
    MAP_TESTING = 0x00D,
    MAP_SCOTT_TEST = 0x019,
    MAP_CASH_TEST = 0x01D,
    MAP_ALTERAC_VALLEY = 0x01E,
    MAP_SHADOWFANG_KEEP = 0x021,
    MAP_STORMWIND_STOCKADE = 0x022,
    MAP_STORMWIND_PRISON = 0x023,
    MAP_DEADMINES = 0x024,
    MAP_AZSHARA_CRATER = 0x025,
    MAP_COLLINS_TEST = 0x02A,
    MAP_WAILING_CAVERNS = 0x02B,
    MAP_MONASTERY = 0x02C,
    MAP_RAZORFEN_KRAUL = 0x02F,
    MAP_BLACKFATHOM_DEEPS = 0x030,
    MAP_ULDAMAN = 0x046,
    MAP_GNOMERAGON = 0x05A,
    MAP_SUNKEN_TEMPLE = 0x06D,
    MAP_RAZORFEN_DOWNS = 0x081,
    MAP_EMERALD_DREAM = 0x0A9,
    MAP_SCARLET_MONASTERY = 0x0BD,
    MAP_ZUL_FARRAK = 0x0D1,
    MAP_BLACKROCK_SPIRE = 0x0E5,
    MAP_BLACKROCK_DEPTHS = 0x0E6,
    MAP_ONYXIAS_LAIR = 0x0F9,
    MAP_CAVERNS_OF_TIME = 0x10D,
    MAP_SCHOLOMANCE = 0x121,
    MAP_ZUL_GURUB = 0x135,
    MAP_STRATHOLME = 0x149,
    MAP_MAURADON = 0x15D,
    MAP_DEEPRUN_TRAM = 0x171,
    MAP_RAGEFIRE_CHASM = 0x185,
    MAP_MOLTEN_CORE = 0x199,
    MAP_DIRE_MAUL = 0x1AD,
    MAP_ALLIANCE_PVP_BARRACKS = 0x1C1,
    MAP_HORDE_PVP_BARRACKS = 0x1C2,
    MAP_DEVELOPMENT_LAND = 0x1C3,
    MAP_BLACKWING_LAIR = 0x1D5,
    MAP_WARSONG_GULCH = 0x1E9,
    MAP_RUINS_OF_AHN_QIRAJ = 0x1FD,
    MAP_ARATHI_BASIN = 0x211,
    MAP_AHN_QIRAJ_TEMPLE = 0x213,
    MAP_NAXXRAMAS = 0x215,
} e_map;
static const value_string e_map_strings[] =  {
    { MAP_EASTERN_KINGDOMS, "Eastern Kingdoms" },
    { MAP_KALIMDOR, "Kalimdor" },
    { MAP_TESTING, "Testing" },
    { MAP_SCOTT_TEST, "Scott Test" },
    { MAP_CASH_TEST, "Cash Test" },
    { MAP_ALTERAC_VALLEY, "Alterac Valley" },
    { MAP_SHADOWFANG_KEEP, "Shadowfang Keep" },
    { MAP_STORMWIND_STOCKADE, "Stormwind Stockade" },
    { MAP_STORMWIND_PRISON, "Stormwind Prison" },
    { MAP_DEADMINES, "Deadmines" },
    { MAP_AZSHARA_CRATER, "Azshara Crater" },
    { MAP_COLLINS_TEST, "Collins Test" },
    { MAP_WAILING_CAVERNS, "Wailing Caverns" },
    { MAP_MONASTERY, "Monastery" },
    { MAP_RAZORFEN_KRAUL, "Razorfen Kraul" },
    { MAP_BLACKFATHOM_DEEPS, "Blackfathom Deeps" },
    { MAP_ULDAMAN, "Uldaman" },
    { MAP_GNOMERAGON, "Gnomeragon" },
    { MAP_SUNKEN_TEMPLE, "Sunken Temple" },
    { MAP_RAZORFEN_DOWNS, "Razorfen Downs" },
    { MAP_EMERALD_DREAM, "Emerald Dream" },
    { MAP_SCARLET_MONASTERY, "Scarlet Monastery" },
    { MAP_ZUL_FARRAK, "Zul Farrak" },
    { MAP_BLACKROCK_SPIRE, "Blackrock Spire" },
    { MAP_BLACKROCK_DEPTHS, "Blackrock Depths" },
    { MAP_ONYXIAS_LAIR, "Onyxias Lair" },
    { MAP_CAVERNS_OF_TIME, "Caverns Of Time" },
    { MAP_SCHOLOMANCE, "Scholomance" },
    { MAP_ZUL_GURUB, "Zul Gurub" },
    { MAP_STRATHOLME, "Stratholme" },
    { MAP_MAURADON, "Mauradon" },
    { MAP_DEEPRUN_TRAM, "Deeprun Tram" },
    { MAP_RAGEFIRE_CHASM, "Ragefire Chasm" },
    { MAP_MOLTEN_CORE, "Molten Core" },
    { MAP_DIRE_MAUL, "Dire Maul" },
    { MAP_ALLIANCE_PVP_BARRACKS, "Alliance Pvp Barracks" },
    { MAP_HORDE_PVP_BARRACKS, "Horde Pvp Barracks" },
    { MAP_DEVELOPMENT_LAND, "Development Land" },
    { MAP_BLACKWING_LAIR, "Blackwing Lair" },
    { MAP_WARSONG_GULCH, "Warsong Gulch" },
    { MAP_RUINS_OF_AHN_QIRAJ, "Ruins Of Ahn Qiraj" },
    { MAP_ARATHI_BASIN, "Arathi Basin" },
    { MAP_AHN_QIRAJ_TEMPLE, "Ahn Qiraj Temple" },
    { MAP_NAXXRAMAS, "Naxxramas" },
    { 0, NULL }
};

typedef enum {
    INVENTORY_TYPE_NON_EQUIP = 0x00,
    INVENTORY_TYPE_HEAD = 0x01,
    INVENTORY_TYPE_NECK = 0x02,
    INVENTORY_TYPE_SHOULDERS = 0x03,
    INVENTORY_TYPE_BODY = 0x04,
    INVENTORY_TYPE_CHEST = 0x05,
    INVENTORY_TYPE_WAIST = 0x06,
    INVENTORY_TYPE_LEGS = 0x07,
    INVENTORY_TYPE_FEET = 0x08,
    INVENTORY_TYPE_WRISTS = 0x09,
    INVENTORY_TYPE_HANDS = 0x0A,
    INVENTORY_TYPE_FINGER = 0x0B,
    INVENTORY_TYPE_TRINKET = 0x0C,
    INVENTORY_TYPE_WEAPON = 0x0D,
    INVENTORY_TYPE_SHIELD = 0x0E,
    INVENTORY_TYPE_RANGED = 0x0F,
    INVENTORY_TYPE_CLOAK = 0x10,
    INVENTORY_TYPE_TWO_HANDED_WEAPON = 0x11,
    INVENTORY_TYPE_BAG = 0x12,
    INVENTORY_TYPE_TABARD = 0x13,
    INVENTORY_TYPE_ROBE = 0x14,
    INVENTORY_TYPE_WEAPON_MAIN_HAND = 0x15,
    INVENTORY_TYPE_WEAPON_OFF_HAND = 0x16,
    INVENTORY_TYPE_HOLDABLE = 0x17,
    INVENTORY_TYPE_AMMO = 0x18,
    INVENTORY_TYPE_THROWN = 0x19,
    INVENTORY_TYPE_RANGED_RIGHT = 0x1A,
    INVENTORY_TYPE_QUIVER = 0x1B,
    INVENTORY_TYPE_RELIC = 0x1C,
} e_inventory_type;
static const value_string e_inventory_type_strings[] =  {
    { INVENTORY_TYPE_NON_EQUIP, "Non Equip" },
    { INVENTORY_TYPE_HEAD, "Head" },
    { INVENTORY_TYPE_NECK, "Neck" },
    { INVENTORY_TYPE_SHOULDERS, "Shoulders" },
    { INVENTORY_TYPE_BODY, "Body" },
    { INVENTORY_TYPE_CHEST, "Chest" },
    { INVENTORY_TYPE_WAIST, "Waist" },
    { INVENTORY_TYPE_LEGS, "Legs" },
    { INVENTORY_TYPE_FEET, "Feet" },
    { INVENTORY_TYPE_WRISTS, "Wrists" },
    { INVENTORY_TYPE_HANDS, "Hands" },
    { INVENTORY_TYPE_FINGER, "Finger" },
    { INVENTORY_TYPE_TRINKET, "Trinket" },
    { INVENTORY_TYPE_WEAPON, "Weapon" },
    { INVENTORY_TYPE_SHIELD, "Shield" },
    { INVENTORY_TYPE_RANGED, "Ranged" },
    { INVENTORY_TYPE_CLOAK, "Cloak" },
    { INVENTORY_TYPE_TWO_HANDED_WEAPON, "Two Handed Weapon" },
    { INVENTORY_TYPE_BAG, "Bag" },
    { INVENTORY_TYPE_TABARD, "Tabard" },
    { INVENTORY_TYPE_ROBE, "Robe" },
    { INVENTORY_TYPE_WEAPON_MAIN_HAND, "Weapon Main Hand" },
    { INVENTORY_TYPE_WEAPON_OFF_HAND, "Weapon Off Hand" },
    { INVENTORY_TYPE_HOLDABLE, "Holdable" },
    { INVENTORY_TYPE_AMMO, "Ammo" },
    { INVENTORY_TYPE_THROWN, "Thrown" },
    { INVENTORY_TYPE_RANGED_RIGHT, "Ranged Right" },
    { INVENTORY_TYPE_QUIVER, "Quiver" },
    { INVENTORY_TYPE_RELIC, "Relic" },
    { 0, NULL }
};

typedef enum {
    FRIEND_STATUS_OFFLINE = 0x0,
    FRIEND_STATUS_ONLINE = 0x1,
    FRIEND_STATUS_AFK = 0x2,
    FRIEND_STATUS_UNKNOWN3 = 0x3,
    FRIEND_STATUS_DND = 0x4,
} e_friend_status;
static const value_string e_friend_status_strings[] =  {
    { FRIEND_STATUS_OFFLINE, "Offline" },
    { FRIEND_STATUS_ONLINE, "Online" },
    { FRIEND_STATUS_AFK, "Afk" },
    { FRIEND_STATUS_UNKNOWN3, "Unknown3" },
    { FRIEND_STATUS_DND, "Dnd" },
    { 0, NULL }
};

typedef enum {
    GUILD_MEMBER_STATUS_OFFLINE = 0x0,
    GUILD_MEMBER_STATUS_ONLINE = 0x1,
} e_guild_member_status;
static const value_string e_guild_member_status_strings[] =  {
    { GUILD_MEMBER_STATUS_OFFLINE, "Offline" },
    { GUILD_MEMBER_STATUS_ONLINE, "Online" },
    { 0, NULL }
};

typedef enum {
    MAIL_TYPE_NORMAL = 0x0,
    MAIL_TYPE_AUCTION = 0x2,
    MAIL_TYPE_CREATURE = 0x3,
    MAIL_TYPE_GAMEOBJECT = 0x4,
    MAIL_TYPE_ITEM = 0x5,
} e_mail_type;
static const value_string e_mail_type_strings[] =  {
    { MAIL_TYPE_NORMAL, "Normal" },
    { MAIL_TYPE_AUCTION, "Auction" },
    { MAIL_TYPE_CREATURE, "Creature" },
    { MAIL_TYPE_GAMEOBJECT, "Gameobject" },
    { MAIL_TYPE_ITEM, "Item" },
    { 0, NULL }
};

typedef enum {
    LANGUAGE_UNIVERSAL = 0x00000000,
    LANGUAGE_ORCISH = 0x00000001,
    LANGUAGE_DARNASSIAN = 0x00000002,
    LANGUAGE_TAURAHE = 0x00000003,
    LANGUAGE_DWARVISH = 0x00000006,
    LANGUAGE_COMMON = 0x00000007,
    LANGUAGE_DEMONIC = 0x00000008,
    LANGUAGE_TITAN = 0x00000009,
    LANGUAGE_THALASSIAN = 0x0000000A,
    LANGUAGE_DRACONIC = 0x0000000B,
    LANGUAGE_KALIMAG = 0x0000000C,
    LANGUAGE_GNOMISH = 0x0000000D,
    LANGUAGE_TROLL = 0x0000000E,
    LANGUAGE_GUTTERSPEAK = 0x00000021,
    LANGUAGE_ADDON = -0x0000001,
} e_language;
static const value_string e_language_strings[] =  {
    { LANGUAGE_UNIVERSAL, "Universal" },
    { LANGUAGE_ORCISH, "Orcish" },
    { LANGUAGE_DARNASSIAN, "Darnassian" },
    { LANGUAGE_TAURAHE, "Taurahe" },
    { LANGUAGE_DWARVISH, "Dwarvish" },
    { LANGUAGE_COMMON, "Common" },
    { LANGUAGE_DEMONIC, "Demonic" },
    { LANGUAGE_TITAN, "Titan" },
    { LANGUAGE_THALASSIAN, "Thalassian" },
    { LANGUAGE_DRACONIC, "Draconic" },
    { LANGUAGE_KALIMAG, "Kalimag" },
    { LANGUAGE_GNOMISH, "Gnomish" },
    { LANGUAGE_TROLL, "Troll" },
    { LANGUAGE_GUTTERSPEAK, "Gutterspeak" },
    { LANGUAGE_ADDON, "Addon" },
    { 0, NULL }
};

typedef enum {
    UPDATE_TYPE_VALUES = 0x0,
    UPDATE_TYPE_MOVEMENT = 0x1,
    UPDATE_TYPE_CREATE_OBJECT = 0x2,
    UPDATE_TYPE_CREATE_OBJECT2 = 0x3,
    UPDATE_TYPE_OUT_OF_RANGE_OBJECTS = 0x4,
    UPDATE_TYPE_NEAR_OBJECTS = 0x5,
} e_update_type;
static const value_string e_update_type_strings[] =  {
    { UPDATE_TYPE_VALUES, "Values" },
    { UPDATE_TYPE_MOVEMENT, "Movement" },
    { UPDATE_TYPE_CREATE_OBJECT, "Create Object" },
    { UPDATE_TYPE_CREATE_OBJECT2, "Create Object2" },
    { UPDATE_TYPE_OUT_OF_RANGE_OBJECTS, "Out Of Range Objects" },
    { UPDATE_TYPE_NEAR_OBJECTS, "Near Objects" },
    { 0, NULL }
};

typedef enum {
    OBJECT_TYPE_OBJECT = 0x0,
    OBJECT_TYPE_ITEM = 0x1,
    OBJECT_TYPE_CONTAINER = 0x2,
    OBJECT_TYPE_UNIT = 0x3,
    OBJECT_TYPE_PLAYER = 0x4,
    OBJECT_TYPE_GAME_OBJECT = 0x5,
    OBJECT_TYPE_DYNAMIC_OBJECT = 0x6,
    OBJECT_TYPE_CORPSE = 0x7,
} e_object_type;
static const value_string e_object_type_strings[] =  {
    { OBJECT_TYPE_OBJECT, "Object" },
    { OBJECT_TYPE_ITEM, "Item" },
    { OBJECT_TYPE_CONTAINER, "Container" },
    { OBJECT_TYPE_UNIT, "Unit" },
    { OBJECT_TYPE_PLAYER, "Player" },
    { OBJECT_TYPE_GAME_OBJECT, "Game Object" },
    { OBJECT_TYPE_DYNAMIC_OBJECT, "Dynamic Object" },
    { OBJECT_TYPE_CORPSE, "Corpse" },
    { 0, NULL }
};

typedef enum {
    RAID_TARGET_INDEX_UNKNOWN0 = 0x00,
    RAID_TARGET_INDEX_UNKNOWN1 = 0x01,
    RAID_TARGET_INDEX_UNKNOWN2 = 0x02,
    RAID_TARGET_INDEX_UNKNOWN3 = 0x03,
    RAID_TARGET_INDEX_UNKNOWN4 = 0x04,
    RAID_TARGET_INDEX_UNKNOWN5 = 0x05,
    RAID_TARGET_INDEX_UNKNOWN6 = 0x06,
    RAID_TARGET_INDEX_UNKNOWN7 = 0x07,
    RAID_TARGET_INDEX_UNKNOWN8 = 0x08,
    RAID_TARGET_INDEX_REQUEST_ICONS = 0xFF,
} e_raid_target_index;
static const value_string e_raid_target_index_strings[] =  {
    { RAID_TARGET_INDEX_UNKNOWN0, "Unknown0" },
    { RAID_TARGET_INDEX_UNKNOWN1, "Unknown1" },
    { RAID_TARGET_INDEX_UNKNOWN2, "Unknown2" },
    { RAID_TARGET_INDEX_UNKNOWN3, "Unknown3" },
    { RAID_TARGET_INDEX_UNKNOWN4, "Unknown4" },
    { RAID_TARGET_INDEX_UNKNOWN5, "Unknown5" },
    { RAID_TARGET_INDEX_UNKNOWN6, "Unknown6" },
    { RAID_TARGET_INDEX_UNKNOWN7, "Unknown7" },
    { RAID_TARGET_INDEX_UNKNOWN8, "Unknown8" },
    { RAID_TARGET_INDEX_REQUEST_ICONS, "Request Icons" },
    { 0, NULL }
};

typedef enum {
    SPELL_EFFECT_NONE = 0x00,
    SPELL_EFFECT_INSTAKILL = 0x01,
    SPELL_EFFECT_SCHOOL_DAMAGE = 0x02,
    SPELL_EFFECT_DUMMY = 0x03,
    SPELL_EFFECT_PORTAL_TELEPORT = 0x04,
    SPELL_EFFECT_TELEPORT_UNITS = 0x05,
    SPELL_EFFECT_APPLY_AURA = 0x06,
    SPELL_EFFECT_ENVIRONMENTAL_DAMAGE = 0x07,
    SPELL_EFFECT_POWER_DRAIN = 0x08,
    SPELL_EFFECT_HEALTH_LEECH = 0x09,
    SPELL_EFFECT_HEAL = 0x0A,
    SPELL_EFFECT_BIND = 0x0B,
    SPELL_EFFECT_PORTAL = 0x0C,
    SPELL_EFFECT_RITUAL_BASE = 0x0D,
    SPELL_EFFECT_RITUAL_SPECIALIZE = 0x0E,
    SPELL_EFFECT_RITUAL_ACTIVATE_PORTAL = 0x0F,
    SPELL_EFFECT_QUEST_COMPLETE = 0x10,
    SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL = 0x11,
    SPELL_EFFECT_RESURRECT = 0x12,
    SPELL_EFFECT_ADD_EXTRA_ATTACKS = 0x13,
    SPELL_EFFECT_DODGE = 0x14,
    SPELL_EFFECT_EVADE = 0x15,
    SPELL_EFFECT_PARRY = 0x16,
    SPELL_EFFECT_BLOCK = 0x17,
    SPELL_EFFECT_CREATE_ITEM = 0x18,
    SPELL_EFFECT_WEAPON = 0x19,
    SPELL_EFFECT_DEFENSE = 0x1A,
    SPELL_EFFECT_PERSISTENT_AREA_AURA = 0x1B,
    SPELL_EFFECT_SUMMON = 0x1C,
    SPELL_EFFECT_LEAP = 0x1D,
    SPELL_EFFECT_ENERGIZE = 0x1E,
    SPELL_EFFECT_WEAPON_PERCENT_DAMAGE = 0x1F,
    SPELL_EFFECT_TRIGGER_MISSILE = 0x20,
    SPELL_EFFECT_OPEN_LOCK = 0x21,
    SPELL_EFFECT_SUMMON_CHANGE_ITEM = 0x22,
    SPELL_EFFECT_APPLY_AREA_AURA_PARTY = 0x23,
    SPELL_EFFECT_LEARN_SPELL = 0x24,
    SPELL_EFFECT_SPELL_DEFENSE = 0x25,
    SPELL_EFFECT_DISPEL = 0x26,
    SPELL_EFFECT_LANGUAGE = 0x27,
    SPELL_EFFECT_DUAL_WIELD = 0x28,
    SPELL_EFFECT_SUMMON_WILD = 0x29,
    SPELL_EFFECT_SUMMON_GUARDIAN = 0x2A,
    SPELL_EFFECT_TELEPORT_UNITS_FACE_CASTER = 0x2B,
    SPELL_EFFECT_SKILL_STEP = 0x2C,
    SPELL_EFFECT_ADD_HONOR = 0x2D,
    SPELL_EFFECT_SPAWN = 0x2E,
    SPELL_EFFECT_TRADE_SKILL = 0x2F,
    SPELL_EFFECT_STEALTH = 0x30,
    SPELL_EFFECT_DETECT = 0x31,
    SPELL_EFFECT_TRANS_DOOR = 0x32,
    SPELL_EFFECT_FORCE_CRITICAL_HIT = 0x33,
    SPELL_EFFECT_GUARANTEE_HIT = 0x34,
    SPELL_EFFECT_ENCHANT_ITEM = 0x35,
    SPELL_EFFECT_ENCHANT_ITEM_TEMPORARY = 0x36,
    SPELL_EFFECT_TAMECREATURE = 0x37,
    SPELL_EFFECT_SUMMON_PET = 0x38,
    SPELL_EFFECT_LEARN_PET_SPELL = 0x39,
    SPELL_EFFECT_WEAPON_DAMAGE = 0x3A,
    SPELL_EFFECT_OPEN_LOCK_ITEM = 0x3B,
    SPELL_EFFECT_PROFICIENCY = 0x3C,
    SPELL_EFFECT_SEND_EVENT = 0x3D,
    SPELL_EFFECT_POWER_BURN = 0x3E,
    SPELL_EFFECT_THREAT = 0x3F,
    SPELL_EFFECT_TRIGGER_SPELL = 0x40,
    SPELL_EFFECT_HEALTH_FUNNEL = 0x41,
    SPELL_EFFECT_POWER_FUNNEL = 0x42,
    SPELL_EFFECT_HEAL_MAX_HEALTH = 0x43,
    SPELL_EFFECT_INTERRUPT_CAST = 0x44,
    SPELL_EFFECT_DISTRACT = 0x45,
    SPELL_EFFECT_PULL = 0x46,
    SPELL_EFFECT_PICKPOCKET = 0x47,
    SPELL_EFFECT_ADD_FARSIGHT = 0x48,
    SPELL_EFFECT_SUMMON_POSSESSED = 0x49,
    SPELL_EFFECT_SUMMON_TOTEM = 0x4A,
    SPELL_EFFECT_HEAL_MECHANICAL = 0x4B,
    SPELL_EFFECT_SUMMON_OBJECT_WILD = 0x4C,
    SPELL_EFFECT_SCRIPT_EFFECT = 0x4D,
    SPELL_EFFECT_ATTACK = 0x4E,
    SPELL_EFFECT_SANCTUARY = 0x4F,
    SPELL_EFFECT_ADD_COMBO_POINTS = 0x50,
    SPELL_EFFECT_CREATE_HOUSE = 0x51,
    SPELL_EFFECT_BIND_SIGHT = 0x52,
    SPELL_EFFECT_DUEL = 0x53,
    SPELL_EFFECT_STUCK = 0x54,
    SPELL_EFFECT_SUMMON_PLAYER = 0x55,
    SPELL_EFFECT_ACTIVATE_OBJECT = 0x56,
    SPELL_EFFECT_SUMMON_TOTEM_SLOT1 = 0x57,
    SPELL_EFFECT_SUMMON_TOTEM_SLOT2 = 0x58,
    SPELL_EFFECT_SUMMON_TOTEM_SLOT3 = 0x59,
    SPELL_EFFECT_SUMMON_TOTEM_SLOT4 = 0x5A,
    SPELL_EFFECT_THREAT_ALL = 0x5B,
    SPELL_EFFECT_ENCHANT_HELD_ITEM = 0x5C,
    SPELL_EFFECT_SUMMON_PHANTASM = 0x5D,
    SPELL_EFFECT_SELF_RESURRECT = 0x5E,
    SPELL_EFFECT_SKINNING = 0x5F,
    SPELL_EFFECT_CHARGE = 0x60,
    SPELL_EFFECT_SUMMON_CRITTER = 0x61,
    SPELL_EFFECT_KNOCK_BACK = 0x62,
    SPELL_EFFECT_DISENCHANT = 0x63,
    SPELL_EFFECT_INEBRIATE = 0x64,
    SPELL_EFFECT_FEED_PET = 0x65,
    SPELL_EFFECT_DISMISS_PET = 0x66,
    SPELL_EFFECT_REPUTATION = 0x67,
    SPELL_EFFECT_SUMMON_OBJECT_SLOT1 = 0x68,
    SPELL_EFFECT_SUMMON_OBJECT_SLOT2 = 0x69,
    SPELL_EFFECT_SUMMON_OBJECT_SLOT3 = 0x6A,
    SPELL_EFFECT_SUMMON_OBJECT_SLOT4 = 0x6B,
    SPELL_EFFECT_DISPEL_MECHANIC = 0x6C,
    SPELL_EFFECT_SUMMON_DEAD_PET = 0x6D,
    SPELL_EFFECT_DESTROY_ALL_TOTEMS = 0x6E,
    SPELL_EFFECT_DURABILITY_DAMAGE = 0x6F,
    SPELL_EFFECT_SUMMON_DEMON = 0x70,
    SPELL_EFFECT_RESURRECT_NEW = 0x71,
    SPELL_EFFECT_ATTACK_ME = 0x72,
    SPELL_EFFECT_DURABILITY_DAMAGE_PCT = 0x73,
    SPELL_EFFECT_SKIN_PLAYER_CORPSE = 0x74,
    SPELL_EFFECT_SPIRIT_HEAL = 0x75,
    SPELL_EFFECT_SKILL = 0x76,
    SPELL_EFFECT_APPLY_AREA_AURA_PET = 0x77,
    SPELL_EFFECT_TELEPORT_GRAVEYARD = 0x78,
    SPELL_EFFECT_NORMALIZED_WEAPON_DMG = 0x79,
    SPELL_EFFECT_UNKNOWN122 = 0x7A,
    SPELL_EFFECT_SEND_TAXI = 0x7B,
    SPELL_EFFECT_PLAYER_PULL = 0x7C,
    SPELL_EFFECT_MODIFY_THREAT_PERCENT = 0x7D,
    SPELL_EFFECT_UNKNOWN126 = 0x7E,
    SPELL_EFFECT_UNKNOWN127 = 0x7F,
} e_spell_effect;
static const value_string e_spell_effect_strings[] =  {
    { SPELL_EFFECT_NONE, "None" },
    { SPELL_EFFECT_INSTAKILL, "Instakill" },
    { SPELL_EFFECT_SCHOOL_DAMAGE, "School Damage" },
    { SPELL_EFFECT_DUMMY, "Dummy" },
    { SPELL_EFFECT_PORTAL_TELEPORT, "Portal Teleport" },
    { SPELL_EFFECT_TELEPORT_UNITS, "Teleport Units" },
    { SPELL_EFFECT_APPLY_AURA, "Apply Aura" },
    { SPELL_EFFECT_ENVIRONMENTAL_DAMAGE, "Environmental Damage" },
    { SPELL_EFFECT_POWER_DRAIN, "Power Drain" },
    { SPELL_EFFECT_HEALTH_LEECH, "Health Leech" },
    { SPELL_EFFECT_HEAL, "Heal" },
    { SPELL_EFFECT_BIND, "Bind" },
    { SPELL_EFFECT_PORTAL, "Portal" },
    { SPELL_EFFECT_RITUAL_BASE, "Ritual Base" },
    { SPELL_EFFECT_RITUAL_SPECIALIZE, "Ritual Specialize" },
    { SPELL_EFFECT_RITUAL_ACTIVATE_PORTAL, "Ritual Activate Portal" },
    { SPELL_EFFECT_QUEST_COMPLETE, "Quest Complete" },
    { SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL, "Weapon Damage Noschool" },
    { SPELL_EFFECT_RESURRECT, "Resurrect" },
    { SPELL_EFFECT_ADD_EXTRA_ATTACKS, "Add Extra Attacks" },
    { SPELL_EFFECT_DODGE, "Dodge" },
    { SPELL_EFFECT_EVADE, "Evade" },
    { SPELL_EFFECT_PARRY, "Parry" },
    { SPELL_EFFECT_BLOCK, "Block" },
    { SPELL_EFFECT_CREATE_ITEM, "Create Item" },
    { SPELL_EFFECT_WEAPON, "Weapon" },
    { SPELL_EFFECT_DEFENSE, "Defense" },
    { SPELL_EFFECT_PERSISTENT_AREA_AURA, "Persistent Area Aura" },
    { SPELL_EFFECT_SUMMON, "Summon" },
    { SPELL_EFFECT_LEAP, "Leap" },
    { SPELL_EFFECT_ENERGIZE, "Energize" },
    { SPELL_EFFECT_WEAPON_PERCENT_DAMAGE, "Weapon Percent Damage" },
    { SPELL_EFFECT_TRIGGER_MISSILE, "Trigger Missile" },
    { SPELL_EFFECT_OPEN_LOCK, "Open Lock" },
    { SPELL_EFFECT_SUMMON_CHANGE_ITEM, "Summon Change Item" },
    { SPELL_EFFECT_APPLY_AREA_AURA_PARTY, "Apply Area Aura Party" },
    { SPELL_EFFECT_LEARN_SPELL, "Learn Spell" },
    { SPELL_EFFECT_SPELL_DEFENSE, "Spell Defense" },
    { SPELL_EFFECT_DISPEL, "Dispel" },
    { SPELL_EFFECT_LANGUAGE, "Language" },
    { SPELL_EFFECT_DUAL_WIELD, "Dual Wield" },
    { SPELL_EFFECT_SUMMON_WILD, "Summon Wild" },
    { SPELL_EFFECT_SUMMON_GUARDIAN, "Summon Guardian" },
    { SPELL_EFFECT_TELEPORT_UNITS_FACE_CASTER, "Teleport Units Face Caster" },
    { SPELL_EFFECT_SKILL_STEP, "Skill Step" },
    { SPELL_EFFECT_ADD_HONOR, "Add Honor" },
    { SPELL_EFFECT_SPAWN, "Spawn" },
    { SPELL_EFFECT_TRADE_SKILL, "Trade Skill" },
    { SPELL_EFFECT_STEALTH, "Stealth" },
    { SPELL_EFFECT_DETECT, "Detect" },
    { SPELL_EFFECT_TRANS_DOOR, "Trans Door" },
    { SPELL_EFFECT_FORCE_CRITICAL_HIT, "Force Critical Hit" },
    { SPELL_EFFECT_GUARANTEE_HIT, "Guarantee Hit" },
    { SPELL_EFFECT_ENCHANT_ITEM, "Enchant Item" },
    { SPELL_EFFECT_ENCHANT_ITEM_TEMPORARY, "Enchant Item Temporary" },
    { SPELL_EFFECT_TAMECREATURE, "Tamecreature" },
    { SPELL_EFFECT_SUMMON_PET, "Summon Pet" },
    { SPELL_EFFECT_LEARN_PET_SPELL, "Learn Pet Spell" },
    { SPELL_EFFECT_WEAPON_DAMAGE, "Weapon Damage" },
    { SPELL_EFFECT_OPEN_LOCK_ITEM, "Open Lock Item" },
    { SPELL_EFFECT_PROFICIENCY, "Proficiency" },
    { SPELL_EFFECT_SEND_EVENT, "Send Event" },
    { SPELL_EFFECT_POWER_BURN, "Power Burn" },
    { SPELL_EFFECT_THREAT, "Threat" },
    { SPELL_EFFECT_TRIGGER_SPELL, "Trigger Spell" },
    { SPELL_EFFECT_HEALTH_FUNNEL, "Health Funnel" },
    { SPELL_EFFECT_POWER_FUNNEL, "Power Funnel" },
    { SPELL_EFFECT_HEAL_MAX_HEALTH, "Heal Max Health" },
    { SPELL_EFFECT_INTERRUPT_CAST, "Interrupt Cast" },
    { SPELL_EFFECT_DISTRACT, "Distract" },
    { SPELL_EFFECT_PULL, "Pull" },
    { SPELL_EFFECT_PICKPOCKET, "Pickpocket" },
    { SPELL_EFFECT_ADD_FARSIGHT, "Add Farsight" },
    { SPELL_EFFECT_SUMMON_POSSESSED, "Summon Possessed" },
    { SPELL_EFFECT_SUMMON_TOTEM, "Summon Totem" },
    { SPELL_EFFECT_HEAL_MECHANICAL, "Heal Mechanical" },
    { SPELL_EFFECT_SUMMON_OBJECT_WILD, "Summon Object Wild" },
    { SPELL_EFFECT_SCRIPT_EFFECT, "Script Effect" },
    { SPELL_EFFECT_ATTACK, "Attack" },
    { SPELL_EFFECT_SANCTUARY, "Sanctuary" },
    { SPELL_EFFECT_ADD_COMBO_POINTS, "Add Combo Points" },
    { SPELL_EFFECT_CREATE_HOUSE, "Create House" },
    { SPELL_EFFECT_BIND_SIGHT, "Bind Sight" },
    { SPELL_EFFECT_DUEL, "Duel" },
    { SPELL_EFFECT_STUCK, "Stuck" },
    { SPELL_EFFECT_SUMMON_PLAYER, "Summon Player" },
    { SPELL_EFFECT_ACTIVATE_OBJECT, "Activate Object" },
    { SPELL_EFFECT_SUMMON_TOTEM_SLOT1, "Summon Totem Slot1" },
    { SPELL_EFFECT_SUMMON_TOTEM_SLOT2, "Summon Totem Slot2" },
    { SPELL_EFFECT_SUMMON_TOTEM_SLOT3, "Summon Totem Slot3" },
    { SPELL_EFFECT_SUMMON_TOTEM_SLOT4, "Summon Totem Slot4" },
    { SPELL_EFFECT_THREAT_ALL, "Threat All" },
    { SPELL_EFFECT_ENCHANT_HELD_ITEM, "Enchant Held Item" },
    { SPELL_EFFECT_SUMMON_PHANTASM, "Summon Phantasm" },
    { SPELL_EFFECT_SELF_RESURRECT, "Self Resurrect" },
    { SPELL_EFFECT_SKINNING, "Skinning" },
    { SPELL_EFFECT_CHARGE, "Charge" },
    { SPELL_EFFECT_SUMMON_CRITTER, "Summon Critter" },
    { SPELL_EFFECT_KNOCK_BACK, "Knock Back" },
    { SPELL_EFFECT_DISENCHANT, "Disenchant" },
    { SPELL_EFFECT_INEBRIATE, "Inebriate" },
    { SPELL_EFFECT_FEED_PET, "Feed Pet" },
    { SPELL_EFFECT_DISMISS_PET, "Dismiss Pet" },
    { SPELL_EFFECT_REPUTATION, "Reputation" },
    { SPELL_EFFECT_SUMMON_OBJECT_SLOT1, "Summon Object Slot1" },
    { SPELL_EFFECT_SUMMON_OBJECT_SLOT2, "Summon Object Slot2" },
    { SPELL_EFFECT_SUMMON_OBJECT_SLOT3, "Summon Object Slot3" },
    { SPELL_EFFECT_SUMMON_OBJECT_SLOT4, "Summon Object Slot4" },
    { SPELL_EFFECT_DISPEL_MECHANIC, "Dispel Mechanic" },
    { SPELL_EFFECT_SUMMON_DEAD_PET, "Summon Dead Pet" },
    { SPELL_EFFECT_DESTROY_ALL_TOTEMS, "Destroy All Totems" },
    { SPELL_EFFECT_DURABILITY_DAMAGE, "Durability Damage" },
    { SPELL_EFFECT_SUMMON_DEMON, "Summon Demon" },
    { SPELL_EFFECT_RESURRECT_NEW, "Resurrect New" },
    { SPELL_EFFECT_ATTACK_ME, "Attack Me" },
    { SPELL_EFFECT_DURABILITY_DAMAGE_PCT, "Durability Damage Pct" },
    { SPELL_EFFECT_SKIN_PLAYER_CORPSE, "Skin Player Corpse" },
    { SPELL_EFFECT_SPIRIT_HEAL, "Spirit Heal" },
    { SPELL_EFFECT_SKILL, "Skill" },
    { SPELL_EFFECT_APPLY_AREA_AURA_PET, "Apply Area Aura Pet" },
    { SPELL_EFFECT_TELEPORT_GRAVEYARD, "Teleport Graveyard" },
    { SPELL_EFFECT_NORMALIZED_WEAPON_DMG, "Normalized Weapon Dmg" },
    { SPELL_EFFECT_UNKNOWN122, "Unknown122" },
    { SPELL_EFFECT_SEND_TAXI, "Send Taxi" },
    { SPELL_EFFECT_PLAYER_PULL, "Player Pull" },
    { SPELL_EFFECT_MODIFY_THREAT_PERCENT, "Modify Threat Percent" },
    { SPELL_EFFECT_UNKNOWN126, "Unknown126" },
    { SPELL_EFFECT_UNKNOWN127, "Unknown127" },
    { 0, NULL }
};

typedef enum {
    SPELL_MISS_INFO_NONE = 0x0,
    SPELL_MISS_INFO_MISS = 0x1,
    SPELL_MISS_INFO_RESIST = 0x2,
    SPELL_MISS_INFO_DODGE = 0x3,
    SPELL_MISS_INFO_PARRY = 0x4,
    SPELL_MISS_INFO_BLOCK = 0x5,
    SPELL_MISS_INFO_EVADE = 0x6,
    SPELL_MISS_INFO_IMMUNE = 0x7,
    SPELL_MISS_INFO_IMMUNE2 = 0x8,
    SPELL_MISS_INFO_DEFLECT = 0x9,
    SPELL_MISS_INFO_ABSORB = 0xA,
    SPELL_MISS_INFO_REFLECT = 0xB,
} e_spell_miss_info;
static const value_string e_spell_miss_info_strings[] =  {
    { SPELL_MISS_INFO_NONE, "None" },
    { SPELL_MISS_INFO_MISS, "Miss" },
    { SPELL_MISS_INFO_RESIST, "Resist" },
    { SPELL_MISS_INFO_DODGE, "Dodge" },
    { SPELL_MISS_INFO_PARRY, "Parry" },
    { SPELL_MISS_INFO_BLOCK, "Block" },
    { SPELL_MISS_INFO_EVADE, "Evade" },
    { SPELL_MISS_INFO_IMMUNE, "Immune" },
    { SPELL_MISS_INFO_IMMUNE2, "Immune2" },
    { SPELL_MISS_INFO_DEFLECT, "Deflect" },
    { SPELL_MISS_INFO_ABSORB, "Absorb" },
    { SPELL_MISS_INFO_REFLECT, "Reflect" },
    { 0, NULL }
};

typedef enum {
    TRAINER_SPELL_STATE_GREEN = 0x0,
    TRAINER_SPELL_STATE_RED = 0x1,
    TRAINER_SPELL_STATE_GRAY = 0x2,
} e_trainer_spell_state;
static const value_string e_trainer_spell_state_strings[] =  {
    { TRAINER_SPELL_STATE_GREEN, "Green" },
    { TRAINER_SPELL_STATE_RED, "Red" },
    { TRAINER_SPELL_STATE_GRAY, "Gray" },
    { 0, NULL }
};

typedef enum {
    ITEM_QUALITY_POOR = 0x0,
    ITEM_QUALITY_NORMAL = 0x1,
    ITEM_QUALITY_UNCOMMON = 0x2,
    ITEM_QUALITY_RARE = 0x3,
    ITEM_QUALITY_EPIC = 0x4,
    ITEM_QUALITY_LEGENDARY = 0x5,
    ITEM_QUALITY_ARTIFACT = 0x6,
} e_item_quality;
static const value_string e_item_quality_strings[] =  {
    { ITEM_QUALITY_POOR, "Poor" },
    { ITEM_QUALITY_NORMAL, "Normal" },
    { ITEM_QUALITY_UNCOMMON, "Uncommon" },
    { ITEM_QUALITY_RARE, "Rare" },
    { ITEM_QUALITY_EPIC, "Epic" },
    { ITEM_QUALITY_LEGENDARY, "Legendary" },
    { ITEM_QUALITY_ARTIFACT, "Artifact" },
    { 0, NULL }
};

typedef enum {
    BATTLEFIELD_PORT_ACTION_LEAVE_QUEUE = 0x0,
    BATTLEFIELD_PORT_ACTION_ENTER_BATTLE = 0x1,
} e_battlefield_port_action;
static const value_string e_battlefield_port_action_strings[] =  {
    { BATTLEFIELD_PORT_ACTION_LEAVE_QUEUE, "Leave Queue" },
    { BATTLEFIELD_PORT_ACTION_ENTER_BATTLE, "Enter Battle" },
    { 0, NULL }
};

typedef enum {
    BUYBACK_SLOT_SLOT1 = 0x45,
    BUYBACK_SLOT_SLOT2 = 0x46,
    BUYBACK_SLOT_SLOT3 = 0x47,
    BUYBACK_SLOT_SLOT4 = 0x48,
    BUYBACK_SLOT_SLOT5 = 0x49,
    BUYBACK_SLOT_SLOT6 = 0x4A,
    BUYBACK_SLOT_SLOT7 = 0x4B,
    BUYBACK_SLOT_SLOT8 = 0x4C,
    BUYBACK_SLOT_SLOT9 = 0x4D,
    BUYBACK_SLOT_SLOT10 = 0x4E,
    BUYBACK_SLOT_SLOT11 = 0x4F,
    BUYBACK_SLOT_SLOT12 = 0x50,
    BUYBACK_SLOT_SLOT13 = 0x51,
} e_buyback_slot;
static const value_string e_buyback_slot_strings[] =  {
    { BUYBACK_SLOT_SLOT1, "Slot1" },
    { BUYBACK_SLOT_SLOT2, "Slot2" },
    { BUYBACK_SLOT_SLOT3, "Slot3" },
    { BUYBACK_SLOT_SLOT4, "Slot4" },
    { BUYBACK_SLOT_SLOT5, "Slot5" },
    { BUYBACK_SLOT_SLOT6, "Slot6" },
    { BUYBACK_SLOT_SLOT7, "Slot7" },
    { BUYBACK_SLOT_SLOT8, "Slot8" },
    { BUYBACK_SLOT_SLOT9, "Slot9" },
    { BUYBACK_SLOT_SLOT10, "Slot10" },
    { BUYBACK_SLOT_SLOT11, "Slot11" },
    { BUYBACK_SLOT_SLOT12, "Slot12" },
    { BUYBACK_SLOT_SLOT13, "Slot13" },
    { 0, NULL }
};

typedef enum {
    EMOTE_ONESHOT_NONE = 0x000,
    EMOTE_ONESHOT_TALK = 0x001,
    EMOTE_ONESHOT_BOW = 0x002,
    EMOTE_ONESHOT_WAVE = 0x003,
    EMOTE_ONESHOT_CHEER = 0x004,
    EMOTE_ONESHOT_EXCLAMATION = 0x005,
    EMOTE_ONESHOT_QUESTION = 0x006,
    EMOTE_ONESHOT_EAT = 0x007,
    EMOTE_STATE_DANCE = 0x00A,
    EMOTE_ONESHOT_LAUGH = 0x00B,
    EMOTE_STATE_SLEEP = 0x00C,
    EMOTE_STATE_SIT = 0x00D,
    EMOTE_ONESHOT_RUDE = 0x00E,
    EMOTE_ONESHOT_ROAR = 0x00F,
    EMOTE_ONESHOT_KNEEL = 0x010,
    EMOTE_ONESHOT_KISS = 0x011,
    EMOTE_ONESHOT_CRY = 0x012,
    EMOTE_ONESHOT_CHICKEN = 0x013,
    EMOTE_ONESHOT_BEG = 0x014,
    EMOTE_ONESHOT_APPLAUD = 0x015,
    EMOTE_ONESHOT_SHOUT = 0x016,
    EMOTE_ONESHOT_FLEX = 0x017,
    EMOTE_ONESHOT_SHY = 0x018,
    EMOTE_ONESHOT_POINT = 0x019,
    EMOTE_STATE_STAND = 0x01A,
    EMOTE_STATE_READYUNARMED = 0x01B,
    EMOTE_STATE_WORK_SHEATHED = 0x01C,
    EMOTE_STATE_POINT = 0x01D,
    EMOTE_STATE_NONE = 0x01E,
    EMOTE_ONESHOT_WOUND = 0x021,
    EMOTE_ONESHOT_WOUNDCRITICAL = 0x022,
    EMOTE_ONESHOT_ATTACKUNARMED = 0x023,
    EMOTE_ONESHOT_ATTACK1H = 0x024,
    EMOTE_ONESHOT_ATTACK2HTIGHT = 0x025,
    EMOTE_ONESHOT_ATTACK2HLOOSE = 0x026,
    EMOTE_ONESHOT_PARRYUNARMED = 0x027,
    EMOTE_ONESHOT_PARRYSHIELD = 0x02B,
    EMOTE_ONESHOT_READYUNARMED = 0x02C,
    EMOTE_ONESHOT_READY1H = 0x02D,
    EMOTE_ONESHOT_READYBOW = 0x030,
    EMOTE_ONESHOT_SPELLPRECAST = 0x032,
    EMOTE_ONESHOT_SPELLCAST = 0x033,
    EMOTE_ONESHOT_BATTLEROAR = 0x035,
    EMOTE_ONESHOT_SPECIALATTACK1H = 0x036,
    EMOTE_ONESHOT_KICK = 0x03C,
    EMOTE_ONESHOT_ATTACKTHROWN = 0x03D,
    EMOTE_STATE_STUN = 0x040,
    EMOTE_STATE_DEAD = 0x041,
    EMOTE_ONESHOT_SALUTE = 0x042,
    EMOTE_STATE_KNEEL = 0x044,
    EMOTE_STATE_USESTANDING = 0x045,
    EMOTE_ONESHOT_WAVE_NOSHEATHE = 0x046,
    EMOTE_ONESHOT_CHEER_NOSHEATHE = 0x047,
    EMOTE_ONESHOT_EAT_NOSHEATHE = 0x05C,
    EMOTE_STATE_STUN_NOSHEATHE = 0x05D,
    EMOTE_ONESHOT_DANCE = 0x05E,
    EMOTE_ONESHOT_SALUTE_NOSHEATH = 0x071,
    EMOTE_STATE_USESTANDING_NOSHEATHE = 0x085,
    EMOTE_ONESHOT_LAUGH_NOSHEATHE = 0x099,
    EMOTE_STATE_WORK = 0x0AD,
    EMOTE_STATE_SPELLPRECAST = 0x0C1,
    EMOTE_ONESHOT_READYRIFLE = 0x0D5,
    EMOTE_STATE_READYRIFLE = 0x0D6,
    EMOTE_STATE_WORK_MINING = 0x0E9,
    EMOTE_STATE_WORK_CHOPWOOD = 0x0EA,
    EMOTE_STATE_APPLAUD = 0x0FD,
    EMOTE_ONESHOT_LIFTOFF = 0x0FE,
    EMOTE_ONESHOT_YES = 0x111,
    EMOTE_ONESHOT_NO = 0x112,
    EMOTE_ONESHOT_TRAIN = 0x113,
    EMOTE_ONESHOT_LAND = 0x125,
    EMOTE_STATE_AT_EASE = 0x139,
    EMOTE_STATE_READY1H = 0x14D,
    EMOTE_STATE_SPELLKNEELSTART = 0x161,
    EMOTE_STATE_SUBMERGED = 0x175,
    EMOTE_ONESHOT_SUBMERGE = 0x176,
    EMOTE_STATE_READY2H = 0x177,
    EMOTE_STATE_READYBOW = 0x178,
    EMOTE_ONESHOT_MOUNTSPECIAL = 0x179,
    EMOTE_STATE_TALK = 0x17A,
    EMOTE_STATE_FISHING = 0x17B,
    EMOTE_ONESHOT_FISHING = 0x17C,
    EMOTE_ONESHOT_LOOT = 0x17D,
    EMOTE_STATE_WHIRLWIND = 0x17E,
    EMOTE_STATE_DROWNED = 0x17F,
    EMOTE_STATE_HOLD_BOW = 0x180,
    EMOTE_STATE_HOLD_RIFLE = 0x181,
    EMOTE_STATE_HOLD_THROWN = 0x182,
    EMOTE_ONESHOT_DROWN = 0x183,
    EMOTE_ONESHOT_STOMP = 0x184,
    EMOTE_ONESHOT_ATTACKOFF = 0x185,
    EMOTE_ONESHOT_ATTACKOFFPIERCE = 0x186,
    EMOTE_STATE_ROAR = 0x187,
    EMOTE_STATE_LAUGH = 0x188,
    EMOTE_ONESHOT_CREATURE_SPECIAL = 0x189,
    EMOTE_ONESHOT_JUMPLANDRUN = 0x18A,
    EMOTE_ONESHOT_JUMPEND = 0x18B,
    EMOTE_ONESHOT_TALK_NOSHEATHE = 0x18C,
    EMOTE_ONESHOT_POINT_NOSHEATHE = 0x18D,
    EMOTE_STATE_CANNIBALIZE = 0x18E,
    EMOTE_ONESHOT_JUMPSTART = 0x18F,
    EMOTE_STATE_DANCESPECIAL = 0x190,
    EMOTE_ONESHOT_DANCESPECIAL = 0x191,
    EMOTE_ONESHOT_CUSTOMSPELL01 = 0x192,
    EMOTE_ONESHOT_CUSTOMSPELL02 = 0x193,
    EMOTE_ONESHOT_CUSTOMSPELL03 = 0x194,
    EMOTE_ONESHOT_CUSTOMSPELL04 = 0x195,
    EMOTE_ONESHOT_CUSTOMSPELL05 = 0x196,
    EMOTE_ONESHOT_CUSTOMSPELL06 = 0x197,
    EMOTE_ONESHOT_CUSTOMSPELL07 = 0x198,
    EMOTE_ONESHOT_CUSTOMSPELL08 = 0x199,
    EMOTE_ONESHOT_CUSTOMSPELL09 = 0x19A,
    EMOTE_ONESHOT_CUSTOMSPELL10 = 0x19B,
    EMOTE_STATE_EXCLAIM = 0x19C,
    EMOTE_STATE_SIT_CHAIR_MED = 0x19F,
    EMOTE_STATE_SPELLEFFECT_HOLD = 0x1A6,
    EMOTE_STATE_EAT_NO_SHEATHE = 0x1A7,
} e_emote;
static const value_string e_emote_strings[] =  {
    { EMOTE_ONESHOT_NONE, "Oneshot None" },
    { EMOTE_ONESHOT_TALK, "Oneshot Talk" },
    { EMOTE_ONESHOT_BOW, "Oneshot Bow" },
    { EMOTE_ONESHOT_WAVE, "Oneshot Wave" },
    { EMOTE_ONESHOT_CHEER, "Oneshot Cheer" },
    { EMOTE_ONESHOT_EXCLAMATION, "Oneshot Exclamation" },
    { EMOTE_ONESHOT_QUESTION, "Oneshot Question" },
    { EMOTE_ONESHOT_EAT, "Oneshot Eat" },
    { EMOTE_STATE_DANCE, "State Dance" },
    { EMOTE_ONESHOT_LAUGH, "Oneshot Laugh" },
    { EMOTE_STATE_SLEEP, "State Sleep" },
    { EMOTE_STATE_SIT, "State Sit" },
    { EMOTE_ONESHOT_RUDE, "Oneshot Rude" },
    { EMOTE_ONESHOT_ROAR, "Oneshot Roar" },
    { EMOTE_ONESHOT_KNEEL, "Oneshot Kneel" },
    { EMOTE_ONESHOT_KISS, "Oneshot Kiss" },
    { EMOTE_ONESHOT_CRY, "Oneshot Cry" },
    { EMOTE_ONESHOT_CHICKEN, "Oneshot Chicken" },
    { EMOTE_ONESHOT_BEG, "Oneshot Beg" },
    { EMOTE_ONESHOT_APPLAUD, "Oneshot Applaud" },
    { EMOTE_ONESHOT_SHOUT, "Oneshot Shout" },
    { EMOTE_ONESHOT_FLEX, "Oneshot Flex" },
    { EMOTE_ONESHOT_SHY, "Oneshot Shy" },
    { EMOTE_ONESHOT_POINT, "Oneshot Point" },
    { EMOTE_STATE_STAND, "State Stand" },
    { EMOTE_STATE_READYUNARMED, "State Readyunarmed" },
    { EMOTE_STATE_WORK_SHEATHED, "State Work Sheathed" },
    { EMOTE_STATE_POINT, "State Point" },
    { EMOTE_STATE_NONE, "State None" },
    { EMOTE_ONESHOT_WOUND, "Oneshot Wound" },
    { EMOTE_ONESHOT_WOUNDCRITICAL, "Oneshot Woundcritical" },
    { EMOTE_ONESHOT_ATTACKUNARMED, "Oneshot Attackunarmed" },
    { EMOTE_ONESHOT_ATTACK1H, "Oneshot Attack1h" },
    { EMOTE_ONESHOT_ATTACK2HTIGHT, "Oneshot Attack2htight" },
    { EMOTE_ONESHOT_ATTACK2HLOOSE, "Oneshot Attack2hloose" },
    { EMOTE_ONESHOT_PARRYUNARMED, "Oneshot Parryunarmed" },
    { EMOTE_ONESHOT_PARRYSHIELD, "Oneshot Parryshield" },
    { EMOTE_ONESHOT_READYUNARMED, "Oneshot Readyunarmed" },
    { EMOTE_ONESHOT_READY1H, "Oneshot Ready1h" },
    { EMOTE_ONESHOT_READYBOW, "Oneshot Readybow" },
    { EMOTE_ONESHOT_SPELLPRECAST, "Oneshot Spellprecast" },
    { EMOTE_ONESHOT_SPELLCAST, "Oneshot Spellcast" },
    { EMOTE_ONESHOT_BATTLEROAR, "Oneshot Battleroar" },
    { EMOTE_ONESHOT_SPECIALATTACK1H, "Oneshot Specialattack1h" },
    { EMOTE_ONESHOT_KICK, "Oneshot Kick" },
    { EMOTE_ONESHOT_ATTACKTHROWN, "Oneshot Attackthrown" },
    { EMOTE_STATE_STUN, "State Stun" },
    { EMOTE_STATE_DEAD, "State Dead" },
    { EMOTE_ONESHOT_SALUTE, "Oneshot Salute" },
    { EMOTE_STATE_KNEEL, "State Kneel" },
    { EMOTE_STATE_USESTANDING, "State Usestanding" },
    { EMOTE_ONESHOT_WAVE_NOSHEATHE, "Oneshot Wave Nosheathe" },
    { EMOTE_ONESHOT_CHEER_NOSHEATHE, "Oneshot Cheer Nosheathe" },
    { EMOTE_ONESHOT_EAT_NOSHEATHE, "Oneshot Eat Nosheathe" },
    { EMOTE_STATE_STUN_NOSHEATHE, "State Stun Nosheathe" },
    { EMOTE_ONESHOT_DANCE, "Oneshot Dance" },
    { EMOTE_ONESHOT_SALUTE_NOSHEATH, "Oneshot Salute Nosheath" },
    { EMOTE_STATE_USESTANDING_NOSHEATHE, "State Usestanding Nosheathe" },
    { EMOTE_ONESHOT_LAUGH_NOSHEATHE, "Oneshot Laugh Nosheathe" },
    { EMOTE_STATE_WORK, "State Work" },
    { EMOTE_STATE_SPELLPRECAST, "State Spellprecast" },
    { EMOTE_ONESHOT_READYRIFLE, "Oneshot Readyrifle" },
    { EMOTE_STATE_READYRIFLE, "State Readyrifle" },
    { EMOTE_STATE_WORK_MINING, "State Work Mining" },
    { EMOTE_STATE_WORK_CHOPWOOD, "State Work Chopwood" },
    { EMOTE_STATE_APPLAUD, "State Applaud" },
    { EMOTE_ONESHOT_LIFTOFF, "Oneshot Liftoff" },
    { EMOTE_ONESHOT_YES, "Oneshot Yes" },
    { EMOTE_ONESHOT_NO, "Oneshot No" },
    { EMOTE_ONESHOT_TRAIN, "Oneshot Train" },
    { EMOTE_ONESHOT_LAND, "Oneshot Land" },
    { EMOTE_STATE_AT_EASE, "State At Ease" },
    { EMOTE_STATE_READY1H, "State Ready1h" },
    { EMOTE_STATE_SPELLKNEELSTART, "State Spellkneelstart" },
    { EMOTE_STATE_SUBMERGED, "State Submerged" },
    { EMOTE_ONESHOT_SUBMERGE, "Oneshot Submerge" },
    { EMOTE_STATE_READY2H, "State Ready2h" },
    { EMOTE_STATE_READYBOW, "State Readybow" },
    { EMOTE_ONESHOT_MOUNTSPECIAL, "Oneshot Mountspecial" },
    { EMOTE_STATE_TALK, "State Talk" },
    { EMOTE_STATE_FISHING, "State Fishing" },
    { EMOTE_ONESHOT_FISHING, "Oneshot Fishing" },
    { EMOTE_ONESHOT_LOOT, "Oneshot Loot" },
    { EMOTE_STATE_WHIRLWIND, "State Whirlwind" },
    { EMOTE_STATE_DROWNED, "State Drowned" },
    { EMOTE_STATE_HOLD_BOW, "State Hold Bow" },
    { EMOTE_STATE_HOLD_RIFLE, "State Hold Rifle" },
    { EMOTE_STATE_HOLD_THROWN, "State Hold Thrown" },
    { EMOTE_ONESHOT_DROWN, "Oneshot Drown" },
    { EMOTE_ONESHOT_STOMP, "Oneshot Stomp" },
    { EMOTE_ONESHOT_ATTACKOFF, "Oneshot Attackoff" },
    { EMOTE_ONESHOT_ATTACKOFFPIERCE, "Oneshot Attackoffpierce" },
    { EMOTE_STATE_ROAR, "State Roar" },
    { EMOTE_STATE_LAUGH, "State Laugh" },
    { EMOTE_ONESHOT_CREATURE_SPECIAL, "Oneshot Creature Special" },
    { EMOTE_ONESHOT_JUMPLANDRUN, "Oneshot Jumplandrun" },
    { EMOTE_ONESHOT_JUMPEND, "Oneshot Jumpend" },
    { EMOTE_ONESHOT_TALK_NOSHEATHE, "Oneshot Talk Nosheathe" },
    { EMOTE_ONESHOT_POINT_NOSHEATHE, "Oneshot Point Nosheathe" },
    { EMOTE_STATE_CANNIBALIZE, "State Cannibalize" },
    { EMOTE_ONESHOT_JUMPSTART, "Oneshot Jumpstart" },
    { EMOTE_STATE_DANCESPECIAL, "State Dancespecial" },
    { EMOTE_ONESHOT_DANCESPECIAL, "Oneshot Dancespecial" },
    { EMOTE_ONESHOT_CUSTOMSPELL01, "Oneshot Customspell01" },
    { EMOTE_ONESHOT_CUSTOMSPELL02, "Oneshot Customspell02" },
    { EMOTE_ONESHOT_CUSTOMSPELL03, "Oneshot Customspell03" },
    { EMOTE_ONESHOT_CUSTOMSPELL04, "Oneshot Customspell04" },
    { EMOTE_ONESHOT_CUSTOMSPELL05, "Oneshot Customspell05" },
    { EMOTE_ONESHOT_CUSTOMSPELL06, "Oneshot Customspell06" },
    { EMOTE_ONESHOT_CUSTOMSPELL07, "Oneshot Customspell07" },
    { EMOTE_ONESHOT_CUSTOMSPELL08, "Oneshot Customspell08" },
    { EMOTE_ONESHOT_CUSTOMSPELL09, "Oneshot Customspell09" },
    { EMOTE_ONESHOT_CUSTOMSPELL10, "Oneshot Customspell10" },
    { EMOTE_STATE_EXCLAIM, "State Exclaim" },
    { EMOTE_STATE_SIT_CHAIR_MED, "State Sit Chair Med" },
    { EMOTE_STATE_SPELLEFFECT_HOLD, "State Spelleffect Hold" },
    { EMOTE_STATE_EAT_NO_SHEATHE, "State Eat No Sheathe" },
    { 0, NULL }
};

typedef enum {
    FAR_SIGHT_OPERATION_REMOVE = 0x0,
    FAR_SIGHT_OPERATION_ADD = 0x1,
} e_far_sight_operation;
static const value_string e_far_sight_operation_strings[] =  {
    { FAR_SIGHT_OPERATION_REMOVE, "Remove" },
    { FAR_SIGHT_OPERATION_ADD, "Add" },
    { 0, NULL }
};

typedef enum {
    GM_TICKET_TYPE_STUCK = 0x1,
    GM_TICKET_TYPE_BEHAVIOR_HARASSMENT = 0x2,
    GM_TICKET_TYPE_GUILD = 0x3,
    GM_TICKET_TYPE_ITEM = 0x4,
    GM_TICKET_TYPE_ENVIRONMENTAL = 0x5,
    GM_TICKET_TYPE_NONQUEST_CREEP = 0x6,
    GM_TICKET_TYPE_QUEST_QUESTNPC = 0x7,
    GM_TICKET_TYPE_TECHNICAL = 0x8,
    GM_TICKET_TYPE_ACCOUNT_BILLING = 0x9,
    GM_TICKET_TYPE_CHARACTER = 0xA,
} e_gm_ticket_type;
static const value_string e_gm_ticket_type_strings[] =  {
    { GM_TICKET_TYPE_STUCK, "Stuck" },
    { GM_TICKET_TYPE_BEHAVIOR_HARASSMENT, "Behavior Harassment" },
    { GM_TICKET_TYPE_GUILD, "Guild" },
    { GM_TICKET_TYPE_ITEM, "Item" },
    { GM_TICKET_TYPE_ENVIRONMENTAL, "Environmental" },
    { GM_TICKET_TYPE_NONQUEST_CREEP, "Nonquest Creep" },
    { GM_TICKET_TYPE_QUEST_QUESTNPC, "Quest Questnpc" },
    { GM_TICKET_TYPE_TECHNICAL, "Technical" },
    { GM_TICKET_TYPE_ACCOUNT_BILLING, "Account Billing" },
    { GM_TICKET_TYPE_CHARACTER, "Character" },
    { 0, NULL }
};

typedef enum {
    GROUP_LOOT_SETTING_FREE_FOR_ALL = 0x0,
    GROUP_LOOT_SETTING_ROUND_ROBIN = 0x1,
    GROUP_LOOT_SETTING_MASTER_LOOT = 0x2,
    GROUP_LOOT_SETTING_GROUP_LOOT = 0x3,
    GROUP_LOOT_SETTING_NEED_BEFORE_GREED = 0x4,
} e_group_loot_setting;
static const value_string e_group_loot_setting_strings[] =  {
    { GROUP_LOOT_SETTING_FREE_FOR_ALL, "Free For All" },
    { GROUP_LOOT_SETTING_ROUND_ROBIN, "Round Robin" },
    { GROUP_LOOT_SETTING_MASTER_LOOT, "Master Loot" },
    { GROUP_LOOT_SETTING_GROUP_LOOT, "Group Loot" },
    { GROUP_LOOT_SETTING_NEED_BEFORE_GREED, "Need Before Greed" },
    { 0, NULL }
};

typedef enum {
    ROLL_VOTE_PASS = 0x0,
    ROLL_VOTE_NEED = 0x1,
    ROLL_VOTE_GREED = 0x2,
} e_roll_vote;
static const value_string e_roll_vote_strings[] =  {
    { ROLL_VOTE_PASS, "Pass" },
    { ROLL_VOTE_NEED, "Need" },
    { ROLL_VOTE_GREED, "Greed" },
    { 0, NULL }
};

typedef enum {
    CHAT_TYPE_SAY = 0x00,
    CHAT_TYPE_PARTY = 0x01,
    CHAT_TYPE_RAID = 0x02,
    CHAT_TYPE_GUILD = 0x03,
    CHAT_TYPE_OFFICER = 0x04,
    CHAT_TYPE_YELL = 0x05,
    CHAT_TYPE_WHISPER = 0x06,
    CHAT_TYPE_WHISPER_INFORM = 0x07,
    CHAT_TYPE_EMOTE = 0x08,
    CHAT_TYPE_TEXT_EMOTE = 0x09,
    CHAT_TYPE_SYSTEM = 0x0A,
    CHAT_TYPE_MONSTER_SAY = 0x0B,
    CHAT_TYPE_MONSTER_YELL = 0x0C,
    CHAT_TYPE_MONSTER_EMOTE = 0x0D,
    CHAT_TYPE_CHANNEL = 0x0E,
    CHAT_TYPE_CHANNEL_JOIN = 0x0F,
    CHAT_TYPE_CHANNEL_LEAVE = 0x10,
    CHAT_TYPE_CHANNEL_LIST = 0x11,
    CHAT_TYPE_CHANNEL_NOTICE = 0x12,
    CHAT_TYPE_CHANNEL_NOTICE_USER = 0x13,
    CHAT_TYPE_AFK = 0x14,
    CHAT_TYPE_DND = 0x15,
    CHAT_TYPE_IGNORED = 0x16,
    CHAT_TYPE_SKILL = 0x17,
    CHAT_TYPE_LOOT = 0x18,
    CHAT_TYPE_MONSTER_WHISPER = 0x1A,
    CHAT_TYPE_BG_SYSTEM_NEUTRAL = 0x52,
    CHAT_TYPE_BG_SYSTEM_ALLIANCE = 0x53,
    CHAT_TYPE_BG_SYSTEM_HORDE = 0x54,
    CHAT_TYPE_RAID_LEADER = 0x57,
    CHAT_TYPE_RAID_WARNING = 0x58,
    CHAT_TYPE_RAID_BOSS_WHISPER = 0x59,
    CHAT_TYPE_RAID_BOSS_EMOTE = 0x5A,
    CHAT_TYPE_BATTLEGROUND = 0x5C,
    CHAT_TYPE_BATTLEGROUND_LEADER = 0x5D,
} e_chat_type;
static const value_string e_chat_type_strings[] =  {
    { CHAT_TYPE_SAY, "Say" },
    { CHAT_TYPE_PARTY, "Party" },
    { CHAT_TYPE_RAID, "Raid" },
    { CHAT_TYPE_GUILD, "Guild" },
    { CHAT_TYPE_OFFICER, "Officer" },
    { CHAT_TYPE_YELL, "Yell" },
    { CHAT_TYPE_WHISPER, "Whisper" },
    { CHAT_TYPE_WHISPER_INFORM, "Whisper Inform" },
    { CHAT_TYPE_EMOTE, "Emote" },
    { CHAT_TYPE_TEXT_EMOTE, "Text Emote" },
    { CHAT_TYPE_SYSTEM, "System" },
    { CHAT_TYPE_MONSTER_SAY, "Monster Say" },
    { CHAT_TYPE_MONSTER_YELL, "Monster Yell" },
    { CHAT_TYPE_MONSTER_EMOTE, "Monster Emote" },
    { CHAT_TYPE_CHANNEL, "Channel" },
    { CHAT_TYPE_CHANNEL_JOIN, "Channel Join" },
    { CHAT_TYPE_CHANNEL_LEAVE, "Channel Leave" },
    { CHAT_TYPE_CHANNEL_LIST, "Channel List" },
    { CHAT_TYPE_CHANNEL_NOTICE, "Channel Notice" },
    { CHAT_TYPE_CHANNEL_NOTICE_USER, "Channel Notice User" },
    { CHAT_TYPE_AFK, "Afk" },
    { CHAT_TYPE_DND, "Dnd" },
    { CHAT_TYPE_IGNORED, "Ignored" },
    { CHAT_TYPE_SKILL, "Skill" },
    { CHAT_TYPE_LOOT, "Loot" },
    { CHAT_TYPE_MONSTER_WHISPER, "Monster Whisper" },
    { CHAT_TYPE_BG_SYSTEM_NEUTRAL, "Bg System Neutral" },
    { CHAT_TYPE_BG_SYSTEM_ALLIANCE, "Bg System Alliance" },
    { CHAT_TYPE_BG_SYSTEM_HORDE, "Bg System Horde" },
    { CHAT_TYPE_RAID_LEADER, "Raid Leader" },
    { CHAT_TYPE_RAID_WARNING, "Raid Warning" },
    { CHAT_TYPE_RAID_BOSS_WHISPER, "Raid Boss Whisper" },
    { CHAT_TYPE_RAID_BOSS_EMOTE, "Raid Boss Emote" },
    { CHAT_TYPE_BATTLEGROUND, "Battleground" },
    { CHAT_TYPE_BATTLEGROUND_LEADER, "Battleground Leader" },
    { 0, NULL }
};

typedef enum {
    SHEATH_STATE_UNARMED = 0x0,
    SHEATH_STATE_MELEE = 0x1,
    SHEATH_STATE_RANGED = 0x2,
} e_sheath_state;
static const value_string e_sheath_state_strings[] =  {
    { SHEATH_STATE_UNARMED, "Unarmed" },
    { SHEATH_STATE_MELEE, "Melee" },
    { SHEATH_STATE_RANGED, "Ranged" },
    { 0, NULL }
};

typedef enum {
    UNIT_STAND_STATE_STAND = 0x0,
    UNIT_STAND_STATE_SIT = 0x1,
    UNIT_STAND_STATE_SIT_CHAIR = 0x2,
    UNIT_STAND_STATE_SLEEP = 0x3,
    UNIT_STAND_STATE_SIT_LOW_CHAIR = 0x4,
    UNIT_STAND_STATE_SIT_MEDIUM_CHAIR = 0x5,
    UNIT_STAND_STATE_SIT_HIGH_CHAIR = 0x6,
    UNIT_STAND_STATE_DEAD = 0x7,
    UNIT_STAND_STATE_KNEEL = 0x8,
    UNIT_STAND_STATE_CUSTOM = 0x9,
} e_unit_stand_state;
static const value_string e_unit_stand_state_strings[] =  {
    { UNIT_STAND_STATE_STAND, "Stand" },
    { UNIT_STAND_STATE_SIT, "Sit" },
    { UNIT_STAND_STATE_SIT_CHAIR, "Sit Chair" },
    { UNIT_STAND_STATE_SLEEP, "Sleep" },
    { UNIT_STAND_STATE_SIT_LOW_CHAIR, "Sit Low Chair" },
    { UNIT_STAND_STATE_SIT_MEDIUM_CHAIR, "Sit Medium Chair" },
    { UNIT_STAND_STATE_SIT_HIGH_CHAIR, "Sit High Chair" },
    { UNIT_STAND_STATE_DEAD, "Dead" },
    { UNIT_STAND_STATE_KNEEL, "Kneel" },
    { UNIT_STAND_STATE_CUSTOM, "Custom" },
    { 0, NULL }
};

typedef enum {
    CORPSE_QUERY_RESULT_NOT_FOUND = 0x0,
    CORPSE_QUERY_RESULT_FOUND = 0x1,
} e_corpse_query_result;
static const value_string e_corpse_query_result_strings[] =  {
    { CORPSE_QUERY_RESULT_NOT_FOUND, "Not Found" },
    { CORPSE_QUERY_RESULT_FOUND, "Found" },
    { 0, NULL }
};

typedef enum {
    BATTLEGROUND_END_STATUS_NOT_ENDED = 0x0,
    BATTLEGROUND_END_STATUS_ENDED = 0x1,
} e_battleground_end_status;
static const value_string e_battleground_end_status_strings[] =  {
    { BATTLEGROUND_END_STATUS_NOT_ENDED, "Not Ended" },
    { BATTLEGROUND_END_STATUS_ENDED, "Ended" },
    { 0, NULL }
};

typedef enum {
    BATTLEGROUND_WINNER_HORDE = 0x0,
    BATTLEGROUND_WINNER_ALLIANCE = 0x1,
    BATTLEGROUND_WINNER_NONE = 0x2,
} e_battleground_winner;
static const value_string e_battleground_winner_strings[] =  {
    { BATTLEGROUND_WINNER_HORDE, "Horde" },
    { BATTLEGROUND_WINNER_ALLIANCE, "Alliance" },
    { BATTLEGROUND_WINNER_NONE, "None" },
    { 0, NULL }
};

typedef enum {
    QUEST_PARTY_MESSAGE_SHARING_QUEST = 0x0,
    QUEST_PARTY_MESSAGE_CANT_TAKE_QUEST = 0x1,
    QUEST_PARTY_MESSAGE_ACCEPT_QUEST = 0x2,
    QUEST_PARTY_MESSAGE_DECLINE_QUEST = 0x3,
    QUEST_PARTY_MESSAGE_TOO_FAR = 0x4,
    QUEST_PARTY_MESSAGE_BUSY = 0x5,
    QUEST_PARTY_MESSAGE_LOG_FULL = 0x6,
    QUEST_PARTY_MESSAGE_HAVE_QUEST = 0x7,
    QUEST_PARTY_MESSAGE_FINISH_QUEST = 0x8,
} e_quest_party_message;
static const value_string e_quest_party_message_strings[] =  {
    { QUEST_PARTY_MESSAGE_SHARING_QUEST, "Sharing Quest" },
    { QUEST_PARTY_MESSAGE_CANT_TAKE_QUEST, "Cant Take Quest" },
    { QUEST_PARTY_MESSAGE_ACCEPT_QUEST, "Accept Quest" },
    { QUEST_PARTY_MESSAGE_DECLINE_QUEST, "Decline Quest" },
    { QUEST_PARTY_MESSAGE_TOO_FAR, "Too Far" },
    { QUEST_PARTY_MESSAGE_BUSY, "Busy" },
    { QUEST_PARTY_MESSAGE_LOG_FULL, "Log Full" },
    { QUEST_PARTY_MESSAGE_HAVE_QUEST, "Have Quest" },
    { QUEST_PARTY_MESSAGE_FINISH_QUEST, "Finish Quest" },
    { 0, NULL }
};

typedef enum {
    RAID_TARGET_UPDATE_TYPE_PARTIAL = 0x0,
    RAID_TARGET_UPDATE_TYPE_FULL = 0x1,
} e_raid_target_update_type;
static const value_string e_raid_target_update_type_strings[] =  {
    { RAID_TARGET_UPDATE_TYPE_PARTIAL, "Partial" },
    { RAID_TARGET_UPDATE_TYPE_FULL, "Full" },
    { 0, NULL }
};

typedef enum {
    GUILD_EMBLEM_RESULT_SUCCESS = 0x0,
    GUILD_EMBLEM_RESULT_INVALID_TABARD_COLORS = 0x1,
    GUILD_EMBLEM_RESULT_NO_GUILD = 0x2,
    GUILD_EMBLEM_RESULT_NOT_GUILD_MASTER = 0x3,
    GUILD_EMBLEM_RESULT_NOT_ENOUGH_MONEY = 0x4,
    GUILD_EMBLEM_RESULT_NO_MESSAGE = 0x5,
} e_guild_emblem_result;
static const value_string e_guild_emblem_result_strings[] =  {
    { GUILD_EMBLEM_RESULT_SUCCESS, "Success" },
    { GUILD_EMBLEM_RESULT_INVALID_TABARD_COLORS, "Invalid Tabard Colors" },
    { GUILD_EMBLEM_RESULT_NO_GUILD, "No Guild" },
    { GUILD_EMBLEM_RESULT_NOT_GUILD_MASTER, "Not Guild Master" },
    { GUILD_EMBLEM_RESULT_NOT_ENOUGH_MONEY, "Not Enough Money" },
    { GUILD_EMBLEM_RESULT_NO_MESSAGE, "No Message" },
    { 0, NULL }
};

typedef enum {
    ACTIVATE_TAXI_REPLY_OK = 0x0,
    ACTIVATE_TAXI_REPLY_UNSPECIFIEDSERVERERROR = 0x1,
    ACTIVATE_TAXI_REPLY_NOSUCHPATH = 0x2,
    ACTIVATE_TAXI_REPLY_NOTENOUGHMONEY = 0x3,
    ACTIVATE_TAXI_REPLY_TOOFARAWAY = 0x4,
    ACTIVATE_TAXI_REPLY_NOVENDORNEARBY = 0x5,
    ACTIVATE_TAXI_REPLY_NOTVISITED = 0x6,
    ACTIVATE_TAXI_REPLY_PLAYERBUSY = 0x7,
    ACTIVATE_TAXI_REPLY_PLAYERALREADYMOUNTED = 0x8,
    ACTIVATE_TAXI_REPLY_PLAYERSHAPESHIFTED = 0x9,
    ACTIVATE_TAXI_REPLY_PLAYERMOVING = 0xA,
    ACTIVATE_TAXI_REPLY_SAMENODE = 0xB,
    ACTIVATE_TAXI_REPLY_NOTSTANDING = 0xC,
} e_activate_taxi_reply;
static const value_string e_activate_taxi_reply_strings[] =  {
    { ACTIVATE_TAXI_REPLY_OK, "Ok" },
    { ACTIVATE_TAXI_REPLY_UNSPECIFIEDSERVERERROR, "Unspecifiedservererror" },
    { ACTIVATE_TAXI_REPLY_NOSUCHPATH, "Nosuchpath" },
    { ACTIVATE_TAXI_REPLY_NOTENOUGHMONEY, "Notenoughmoney" },
    { ACTIVATE_TAXI_REPLY_TOOFARAWAY, "Toofaraway" },
    { ACTIVATE_TAXI_REPLY_NOVENDORNEARBY, "Novendornearby" },
    { ACTIVATE_TAXI_REPLY_NOTVISITED, "Notvisited" },
    { ACTIVATE_TAXI_REPLY_PLAYERBUSY, "Playerbusy" },
    { ACTIVATE_TAXI_REPLY_PLAYERALREADYMOUNTED, "Playeralreadymounted" },
    { ACTIVATE_TAXI_REPLY_PLAYERSHAPESHIFTED, "Playershapeshifted" },
    { ACTIVATE_TAXI_REPLY_PLAYERMOVING, "Playermoving" },
    { ACTIVATE_TAXI_REPLY_SAMENODE, "Samenode" },
    { ACTIVATE_TAXI_REPLY_NOTSTANDING, "Notstanding" },
    { 0, NULL }
};

typedef enum {
    AI_REACTION_ALERT = 0x0,
    AI_REACTION_FRIENDLY = 0x1,
    AI_REACTION_HOSTILE = 0x2,
    AI_REACTION_AFRAID = 0x3,
    AI_REACTION_DESTROY = 0x4,
} e_ai_reaction;
static const value_string e_ai_reaction_strings[] =  {
    { AI_REACTION_ALERT, "Alert" },
    { AI_REACTION_FRIENDLY, "Friendly" },
    { AI_REACTION_HOSTILE, "Hostile" },
    { AI_REACTION_AFRAID, "Afraid" },
    { AI_REACTION_DESTROY, "Destroy" },
    { 0, NULL }
};

typedef enum {
    HIT_INFO_NORMAL_SWING = 0x00000,
    HIT_INFO_UNK1 = 0x00001,
    HIT_INFO_AFFECTS_VICTIM = 0x00002,
    HIT_INFO_LEFT_SWING = 0x00004,
    HIT_INFO_EARLY_CRITICAL_HIT = 0x00008,
    HIT_INFO_MISS = 0x00010,
    HIT_INFO_ABSORB = 0x00020,
    HIT_INFO_RESIST = 0x00040,
    HIT_INFO_CRITICAL_HIT = 0x00080,
    HIT_INFO_UNK9 = 0x00100,
    HIT_INFO_UNK10 = 0x02000,
    HIT_INFO_GLANCING = 0x04000,
    HIT_INFO_CRUSHING = 0x08000,
    HIT_INFO_NO_ACTION = 0x10000,
    HIT_INFO_SWING_NO_HIT_SOUND = 0x80000,
} e_hit_info;
static const value_string e_hit_info_strings[] =  {
    { HIT_INFO_NORMAL_SWING, "Normal Swing" },
    { HIT_INFO_UNK1, "Unk1" },
    { HIT_INFO_AFFECTS_VICTIM, "Affects Victim" },
    { HIT_INFO_LEFT_SWING, "Left Swing" },
    { HIT_INFO_EARLY_CRITICAL_HIT, "Early Critical Hit" },
    { HIT_INFO_MISS, "Miss" },
    { HIT_INFO_ABSORB, "Absorb" },
    { HIT_INFO_RESIST, "Resist" },
    { HIT_INFO_CRITICAL_HIT, "Critical Hit" },
    { HIT_INFO_UNK9, "Unk9" },
    { HIT_INFO_UNK10, "Unk10" },
    { HIT_INFO_GLANCING, "Glancing" },
    { HIT_INFO_CRUSHING, "Crushing" },
    { HIT_INFO_NO_ACTION, "No Action" },
    { HIT_INFO_SWING_NO_HIT_SOUND, "Swing No Hit Sound" },
    { 0, NULL }
};

typedef enum {
    WORLD_RESULT_RESPONSE_SUCCESS = 0x00,
    WORLD_RESULT_RESPONSE_FAILURE = 0x01,
    WORLD_RESULT_RESPONSE_CANCELLED = 0x02,
    WORLD_RESULT_RESPONSE_DISCONNECTED = 0x03,
    WORLD_RESULT_RESPONSE_FAILED_TO_CONNECT = 0x04,
    WORLD_RESULT_RESPONSE_CONNECTED = 0x05,
    WORLD_RESULT_RESPONSE_VERSION_MISMATCH = 0x06,
    WORLD_RESULT_CSTATUS_CONNECTING = 0x07,
    WORLD_RESULT_CSTATUS_NEGOTIATING_SECURITY = 0x08,
    WORLD_RESULT_CSTATUS_NEGOTIATION_COMPLETE = 0x09,
    WORLD_RESULT_CSTATUS_NEGOTIATION_FAILED = 0x0A,
    WORLD_RESULT_CSTATUS_AUTHENTICATING = 0x0B,
    WORLD_RESULT_AUTH_OK = 0x0C,
    WORLD_RESULT_AUTH_FAILED = 0x0D,
    WORLD_RESULT_AUTH_REJECT = 0x0E,
    WORLD_RESULT_AUTH_BAD_SERVER_PROOF = 0x0F,
    WORLD_RESULT_AUTH_UNAVAILABLE = 0x10,
    WORLD_RESULT_AUTH_SYSTEM_ERROR = 0x11,
    WORLD_RESULT_AUTH_BILLING_ERROR = 0x12,
    WORLD_RESULT_AUTH_BILLING_EXPIRED = 0x13,
    WORLD_RESULT_AUTH_VERSION_MISMATCH = 0x14,
    WORLD_RESULT_AUTH_UNKNOWN_ACCOUNT = 0x15,
    WORLD_RESULT_AUTH_INCORRECT_PASSWORD = 0x16,
    WORLD_RESULT_AUTH_SESSION_EXPIRED = 0x17,
    WORLD_RESULT_AUTH_SERVER_SHUTTING_DOWN = 0x18,
    WORLD_RESULT_AUTH_ALREADY_LOGGING_IN = 0x19,
    WORLD_RESULT_AUTH_LOGIN_SERVER_NOT_FOUND = 0x1A,
    WORLD_RESULT_AUTH_WAIT_QUEUE = 0x1B,
    WORLD_RESULT_AUTH_BANNED = 0x1C,
    WORLD_RESULT_AUTH_ALREADY_ONLINE = 0x1D,
    WORLD_RESULT_AUTH_NO_TIME = 0x1E,
    WORLD_RESULT_AUTH_DB_BUSY = 0x1F,
    WORLD_RESULT_AUTH_SUSPENDED = 0x20,
    WORLD_RESULT_AUTH_PARENTAL_CONTROL = 0x21,
    WORLD_RESULT_REALM_LIST_IN_PROGRESS = 0x22,
    WORLD_RESULT_REALM_LIST_SUCCESS = 0x23,
    WORLD_RESULT_REALM_LIST_FAILED = 0x24,
    WORLD_RESULT_REALM_LIST_INVALID = 0x25,
    WORLD_RESULT_REALM_LIST_REALM_NOT_FOUND = 0x26,
    WORLD_RESULT_ACCOUNT_CREATE_IN_PROGRESS = 0x27,
    WORLD_RESULT_ACCOUNT_CREATE_SUCCESS = 0x28,
    WORLD_RESULT_ACCOUNT_CREATE_FAILED = 0x29,
    WORLD_RESULT_CHAR_LIST_RETRIEVING = 0x2A,
    WORLD_RESULT_CHAR_LIST_RETRIEVED = 0x2B,
    WORLD_RESULT_CHAR_LIST_FAILED = 0x2C,
    WORLD_RESULT_CHAR_CREATE_IN_PROGRESS = 0x2D,
    WORLD_RESULT_CHAR_CREATE_SUCCESS = 0x2E,
    WORLD_RESULT_CHAR_CREATE_ERROR = 0x2F,
    WORLD_RESULT_CHAR_CREATE_FAILED = 0x30,
    WORLD_RESULT_CHAR_CREATE_NAME_IN_USE = 0x31,
    WORLD_RESULT_CHAR_CREATE_DISABLED = 0x32,
    WORLD_RESULT_CHAR_CREATE_PVP_TEAMS_VIOLATION = 0x33,
    WORLD_RESULT_CHAR_CREATE_SERVER_LIMIT = 0x34,
    WORLD_RESULT_CHAR_CREATE_ACCOUNT_LIMIT = 0x35,
    WORLD_RESULT_CHAR_CREATE_SERVER_QUEUE = 0x36,
    WORLD_RESULT_CHAR_CREATE_ONLY_EXISTING = 0x37,
    WORLD_RESULT_CHAR_DELETE_IN_PROGRESS = 0x38,
    WORLD_RESULT_CHAR_DELETE_SUCCESS = 0x39,
    WORLD_RESULT_CHAR_DELETE_FAILED = 0x3A,
    WORLD_RESULT_CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER = 0x3B,
    WORLD_RESULT_CHAR_LOGIN_IN_PROGRESS = 0x3C,
    WORLD_RESULT_CHAR_LOGIN_SUCCESS = 0x3D,
    WORLD_RESULT_CHAR_LOGIN_NO_WORLD = 0x3E,
    WORLD_RESULT_CHAR_LOGIN_DUPLICATE_CHARACTER = 0x3F,
    WORLD_RESULT_CHAR_LOGIN_NO_INSTANCES = 0x40,
    WORLD_RESULT_CHAR_LOGIN_FAILED = 0x41,
    WORLD_RESULT_CHAR_LOGIN_DISABLED = 0x42,
    WORLD_RESULT_CHAR_LOGIN_NO_CHARACTER = 0x43,
    WORLD_RESULT_CHAR_LOGIN_LOCKED_FOR_TRANSFER = 0x44,
    WORLD_RESULT_CHAR_NAME_NO_NAME = 0x45,
    WORLD_RESULT_CHAR_NAME_TOO_SHORT = 0x46,
    WORLD_RESULT_CHAR_NAME_TOO_LONG = 0x47,
    WORLD_RESULT_CHAR_NAME_ONLY_LETTERS = 0x48,
    WORLD_RESULT_CHAR_NAME_MIXED_LANGUAGES = 0x49,
    WORLD_RESULT_CHAR_NAME_PROFANE = 0x4A,
    WORLD_RESULT_CHAR_NAME_RESERVED = 0x4B,
    WORLD_RESULT_CHAR_NAME_INVALID_APOSTROPHE = 0x4C,
    WORLD_RESULT_CHAR_NAME_MULTIPLE_APOSTROPHES = 0x4D,
    WORLD_RESULT_CHAR_NAME_THREE_CONSECUTIVE = 0x4E,
    WORLD_RESULT_CHAR_NAME_INVALID_SPACE = 0x4F,
    WORLD_RESULT_CHAR_NAME_SUCCESS = 0x50,
    WORLD_RESULT_CHAR_NAME_FAILURE = 0x51,
} e_world_result;
static const value_string e_world_result_strings[] =  {
    { WORLD_RESULT_RESPONSE_SUCCESS, "Response Success" },
    { WORLD_RESULT_RESPONSE_FAILURE, "Response Failure" },
    { WORLD_RESULT_RESPONSE_CANCELLED, "Response Cancelled" },
    { WORLD_RESULT_RESPONSE_DISCONNECTED, "Response Disconnected" },
    { WORLD_RESULT_RESPONSE_FAILED_TO_CONNECT, "Response Failed To Connect" },
    { WORLD_RESULT_RESPONSE_CONNECTED, "Response Connected" },
    { WORLD_RESULT_RESPONSE_VERSION_MISMATCH, "Response Version Mismatch" },
    { WORLD_RESULT_CSTATUS_CONNECTING, "Cstatus Connecting" },
    { WORLD_RESULT_CSTATUS_NEGOTIATING_SECURITY, "Cstatus Negotiating Security" },
    { WORLD_RESULT_CSTATUS_NEGOTIATION_COMPLETE, "Cstatus Negotiation Complete" },
    { WORLD_RESULT_CSTATUS_NEGOTIATION_FAILED, "Cstatus Negotiation Failed" },
    { WORLD_RESULT_CSTATUS_AUTHENTICATING, "Cstatus Authenticating" },
    { WORLD_RESULT_AUTH_OK, "Auth Ok" },
    { WORLD_RESULT_AUTH_FAILED, "Auth Failed" },
    { WORLD_RESULT_AUTH_REJECT, "Auth Reject" },
    { WORLD_RESULT_AUTH_BAD_SERVER_PROOF, "Auth Bad Server Proof" },
    { WORLD_RESULT_AUTH_UNAVAILABLE, "Auth Unavailable" },
    { WORLD_RESULT_AUTH_SYSTEM_ERROR, "Auth System Error" },
    { WORLD_RESULT_AUTH_BILLING_ERROR, "Auth Billing Error" },
    { WORLD_RESULT_AUTH_BILLING_EXPIRED, "Auth Billing Expired" },
    { WORLD_RESULT_AUTH_VERSION_MISMATCH, "Auth Version Mismatch" },
    { WORLD_RESULT_AUTH_UNKNOWN_ACCOUNT, "Auth Unknown Account" },
    { WORLD_RESULT_AUTH_INCORRECT_PASSWORD, "Auth Incorrect Password" },
    { WORLD_RESULT_AUTH_SESSION_EXPIRED, "Auth Session Expired" },
    { WORLD_RESULT_AUTH_SERVER_SHUTTING_DOWN, "Auth Server Shutting Down" },
    { WORLD_RESULT_AUTH_ALREADY_LOGGING_IN, "Auth Already Logging In" },
    { WORLD_RESULT_AUTH_LOGIN_SERVER_NOT_FOUND, "Auth Login Server Not Found" },
    { WORLD_RESULT_AUTH_WAIT_QUEUE, "Auth Wait Queue" },
    { WORLD_RESULT_AUTH_BANNED, "Auth Banned" },
    { WORLD_RESULT_AUTH_ALREADY_ONLINE, "Auth Already Online" },
    { WORLD_RESULT_AUTH_NO_TIME, "Auth No Time" },
    { WORLD_RESULT_AUTH_DB_BUSY, "Auth Db Busy" },
    { WORLD_RESULT_AUTH_SUSPENDED, "Auth Suspended" },
    { WORLD_RESULT_AUTH_PARENTAL_CONTROL, "Auth Parental Control" },
    { WORLD_RESULT_REALM_LIST_IN_PROGRESS, "Realm List In Progress" },
    { WORLD_RESULT_REALM_LIST_SUCCESS, "Realm List Success" },
    { WORLD_RESULT_REALM_LIST_FAILED, "Realm List Failed" },
    { WORLD_RESULT_REALM_LIST_INVALID, "Realm List Invalid" },
    { WORLD_RESULT_REALM_LIST_REALM_NOT_FOUND, "Realm List Realm Not Found" },
    { WORLD_RESULT_ACCOUNT_CREATE_IN_PROGRESS, "Account Create In Progress" },
    { WORLD_RESULT_ACCOUNT_CREATE_SUCCESS, "Account Create Success" },
    { WORLD_RESULT_ACCOUNT_CREATE_FAILED, "Account Create Failed" },
    { WORLD_RESULT_CHAR_LIST_RETRIEVING, "Char List Retrieving" },
    { WORLD_RESULT_CHAR_LIST_RETRIEVED, "Char List Retrieved" },
    { WORLD_RESULT_CHAR_LIST_FAILED, "Char List Failed" },
    { WORLD_RESULT_CHAR_CREATE_IN_PROGRESS, "Char Create In Progress" },
    { WORLD_RESULT_CHAR_CREATE_SUCCESS, "Char Create Success" },
    { WORLD_RESULT_CHAR_CREATE_ERROR, "Char Create Error" },
    { WORLD_RESULT_CHAR_CREATE_FAILED, "Char Create Failed" },
    { WORLD_RESULT_CHAR_CREATE_NAME_IN_USE, "Char Create Name In Use" },
    { WORLD_RESULT_CHAR_CREATE_DISABLED, "Char Create Disabled" },
    { WORLD_RESULT_CHAR_CREATE_PVP_TEAMS_VIOLATION, "Char Create Pvp Teams Violation" },
    { WORLD_RESULT_CHAR_CREATE_SERVER_LIMIT, "Char Create Server Limit" },
    { WORLD_RESULT_CHAR_CREATE_ACCOUNT_LIMIT, "Char Create Account Limit" },
    { WORLD_RESULT_CHAR_CREATE_SERVER_QUEUE, "Char Create Server Queue" },
    { WORLD_RESULT_CHAR_CREATE_ONLY_EXISTING, "Char Create Only Existing" },
    { WORLD_RESULT_CHAR_DELETE_IN_PROGRESS, "Char Delete In Progress" },
    { WORLD_RESULT_CHAR_DELETE_SUCCESS, "Char Delete Success" },
    { WORLD_RESULT_CHAR_DELETE_FAILED, "Char Delete Failed" },
    { WORLD_RESULT_CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER, "Char Delete Failed Locked For Transfer" },
    { WORLD_RESULT_CHAR_LOGIN_IN_PROGRESS, "Char Login In Progress" },
    { WORLD_RESULT_CHAR_LOGIN_SUCCESS, "Char Login Success" },
    { WORLD_RESULT_CHAR_LOGIN_NO_WORLD, "Char Login No World" },
    { WORLD_RESULT_CHAR_LOGIN_DUPLICATE_CHARACTER, "Char Login Duplicate Character" },
    { WORLD_RESULT_CHAR_LOGIN_NO_INSTANCES, "Char Login No Instances" },
    { WORLD_RESULT_CHAR_LOGIN_FAILED, "Char Login Failed" },
    { WORLD_RESULT_CHAR_LOGIN_DISABLED, "Char Login Disabled" },
    { WORLD_RESULT_CHAR_LOGIN_NO_CHARACTER, "Char Login No Character" },
    { WORLD_RESULT_CHAR_LOGIN_LOCKED_FOR_TRANSFER, "Char Login Locked For Transfer" },
    { WORLD_RESULT_CHAR_NAME_NO_NAME, "Char Name No Name" },
    { WORLD_RESULT_CHAR_NAME_TOO_SHORT, "Char Name Too Short" },
    { WORLD_RESULT_CHAR_NAME_TOO_LONG, "Char Name Too Long" },
    { WORLD_RESULT_CHAR_NAME_ONLY_LETTERS, "Char Name Only Letters" },
    { WORLD_RESULT_CHAR_NAME_MIXED_LANGUAGES, "Char Name Mixed Languages" },
    { WORLD_RESULT_CHAR_NAME_PROFANE, "Char Name Profane" },
    { WORLD_RESULT_CHAR_NAME_RESERVED, "Char Name Reserved" },
    { WORLD_RESULT_CHAR_NAME_INVALID_APOSTROPHE, "Char Name Invalid Apostrophe" },
    { WORLD_RESULT_CHAR_NAME_MULTIPLE_APOSTROPHES, "Char Name Multiple Apostrophes" },
    { WORLD_RESULT_CHAR_NAME_THREE_CONSECUTIVE, "Char Name Three Consecutive" },
    { WORLD_RESULT_CHAR_NAME_INVALID_SPACE, "Char Name Invalid Space" },
    { WORLD_RESULT_CHAR_NAME_SUCCESS, "Char Name Success" },
    { WORLD_RESULT_CHAR_NAME_FAILURE, "Char Name Failure" },
    { 0, NULL }
};

typedef enum {
    BATTLEGROUND_BRACKET_TENS = 0x0,
    BATTLEGROUND_BRACKET_TWENTIES = 0x1,
    BATTLEGROUND_BRACKET_THIRTIES = 0x2,
    BATTLEGROUND_BRACKET_FOURTIES = 0x3,
    BATTLEGROUND_BRACKET_FIFTIES = 0x4,
    BATTLEGROUND_BRACKET_SIXTY = 0x5,
} e_battleground_bracket;
static const value_string e_battleground_bracket_strings[] =  {
    { BATTLEGROUND_BRACKET_TENS, "Tens" },
    { BATTLEGROUND_BRACKET_TWENTIES, "Twenties" },
    { BATTLEGROUND_BRACKET_THIRTIES, "Thirties" },
    { BATTLEGROUND_BRACKET_FOURTIES, "Fourties" },
    { BATTLEGROUND_BRACKET_FIFTIES, "Fifties" },
    { BATTLEGROUND_BRACKET_SIXTY, "Sixty" },
    { 0, NULL }
};

typedef enum {
    STATUS_ID_NONE = 0x0,
    STATUS_ID_WAIT_QUEUE = 0x1,
    STATUS_ID_WAIT_JOIN = 0x2,
    STATUS_ID_IN_PROGRESS = 0x3,
    STATUS_ID_WAIT_LEAVE = 0x4,
} e_status_id;
static const value_string e_status_id_strings[] =  {
    { STATUS_ID_NONE, "None" },
    { STATUS_ID_WAIT_QUEUE, "Wait Queue" },
    { STATUS_ID_WAIT_JOIN, "Wait Join" },
    { STATUS_ID_IN_PROGRESS, "In Progress" },
    { STATUS_ID_WAIT_LEAVE, "Wait Leave" },
    { 0, NULL }
};

typedef enum {
    BUY_BANK_SLOT_RESULT_FAILED_TOO_MANY = 0x0,
    BUY_BANK_SLOT_RESULT_INSUFFICIENT_FUNDS = 0x1,
    BUY_BANK_SLOT_RESULT_NOT_BANKER = 0x2,
    BUY_BANK_SLOT_RESULT_OK = 0x3,
} e_buy_bank_slot_result;
static const value_string e_buy_bank_slot_result_strings[] =  {
    { BUY_BANK_SLOT_RESULT_FAILED_TOO_MANY, "Failed Too Many" },
    { BUY_BANK_SLOT_RESULT_INSUFFICIENT_FUNDS, "Insufficient Funds" },
    { BUY_BANK_SLOT_RESULT_NOT_BANKER, "Not Banker" },
    { BUY_BANK_SLOT_RESULT_OK, "Ok" },
    { 0, NULL }
};

typedef enum {
    BUY_RESULT_CANT_FIND_ITEM = 0x0,
    BUY_RESULT_ITEM_ALREADY_SOLD = 0x1,
    BUY_RESULT_NOT_ENOUGHT_MONEY = 0x2,
    BUY_RESULT_SELLER_DONT_LIKE_YOU = 0x4,
    BUY_RESULT_DISTANCE_TOO_FAR = 0x5,
    BUY_RESULT_ITEM_SOLD_OUT = 0x7,
    BUY_RESULT_CANT_CARRY_MORE = 0x8,
    BUY_RESULT_RANK_REQUIRE = 0xB,
    BUY_RESULT_REPUTATION_REQUIRE = 0xC,
} e_buy_result;
static const value_string e_buy_result_strings[] =  {
    { BUY_RESULT_CANT_FIND_ITEM, "Cant Find Item" },
    { BUY_RESULT_ITEM_ALREADY_SOLD, "Item Already Sold" },
    { BUY_RESULT_NOT_ENOUGHT_MONEY, "Not Enought Money" },
    { BUY_RESULT_SELLER_DONT_LIKE_YOU, "Seller Dont Like You" },
    { BUY_RESULT_DISTANCE_TOO_FAR, "Distance Too Far" },
    { BUY_RESULT_ITEM_SOLD_OUT, "Item Sold Out" },
    { BUY_RESULT_CANT_CARRY_MORE, "Cant Carry More" },
    { BUY_RESULT_RANK_REQUIRE, "Rank Require" },
    { BUY_RESULT_REPUTATION_REQUIRE, "Reputation Require" },
    { 0, NULL }
};

typedef enum {
    SIMPLE_SPELL_CAST_RESULT_SUCCESS = 0x0,
    SIMPLE_SPELL_CAST_RESULT_FAILURE = 0x2,
} e_simple_spell_cast_result;
static const value_string e_simple_spell_cast_result_strings[] =  {
    { SIMPLE_SPELL_CAST_RESULT_SUCCESS, "Success" },
    { SIMPLE_SPELL_CAST_RESULT_FAILURE, "Failure" },
    { 0, NULL }
};

typedef enum {
    CAST_FAILURE_REASON_AFFECTING_COMBAT = 0x00,
    CAST_FAILURE_REASON_ALREADY_AT_FULL_HEALTH = 0x01,
    CAST_FAILURE_REASON_ALREADY_AT_FULL_POWER = 0x02,
    CAST_FAILURE_REASON_ALREADY_BEING_TAMED = 0x03,
    CAST_FAILURE_REASON_ALREADY_HAVE_CHARM = 0x04,
    CAST_FAILURE_REASON_ALREADY_HAVE_SUMMON = 0x05,
    CAST_FAILURE_REASON_ALREADY_OPEN = 0x06,
    CAST_FAILURE_REASON_AURA_BOUNCED = 0x07,
    CAST_FAILURE_REASON_AUTOTRACK_INTERRUPTED = 0x08,
    CAST_FAILURE_REASON_BAD_IMPLICIT_TARGETS = 0x09,
    CAST_FAILURE_REASON_BAD_TARGETS = 0x0A,
    CAST_FAILURE_REASON_CANT_BE_CHARMED = 0x0B,
    CAST_FAILURE_REASON_CANT_BE_DISENCHANTED = 0x0C,
    CAST_FAILURE_REASON_CANT_BE_PROSPECTED = 0x0D,
    CAST_FAILURE_REASON_CANT_CAST_ON_TAPPED = 0x0E,
    CAST_FAILURE_REASON_CANT_DUEL_WHILE_INVISIBLE = 0x0F,
    CAST_FAILURE_REASON_CANT_DUEL_WHILE_STEALTHED = 0x10,
    CAST_FAILURE_REASON_CANT_STEALTH = 0x11,
    CAST_FAILURE_REASON_CASTER_AURASTATE = 0x12,
    CAST_FAILURE_REASON_CASTER_DEAD = 0x13,
    CAST_FAILURE_REASON_CHARMED = 0x14,
    CAST_FAILURE_REASON_CHEST_IN_USE = 0x15,
    CAST_FAILURE_REASON_CONFUSED = 0x16,
    CAST_FAILURE_REASON_DONT_REPORT = 0x17,
    CAST_FAILURE_REASON_EQUIPPED_ITEM = 0x18,
    CAST_FAILURE_REASON_EQUIPPED_ITEM_CLASS = 0x19,
    CAST_FAILURE_REASON_EQUIPPED_ITEM_CLASS_MAINHAND = 0x1A,
    CAST_FAILURE_REASON_EQUIPPED_ITEM_CLASS_OFFHAND = 0x1B,
    CAST_FAILURE_REASON_ERROR = 0x1C,
    CAST_FAILURE_REASON_FIZZLE = 0x1D,
    CAST_FAILURE_REASON_FLEEING = 0x1E,
    CAST_FAILURE_REASON_FOOD_LOWLEVEL = 0x1F,
    CAST_FAILURE_REASON_HIGHLEVEL = 0x20,
    CAST_FAILURE_REASON_HUNGER_SATIATED = 0x21,
    CAST_FAILURE_REASON_IMMUNE = 0x22,
    CAST_FAILURE_REASON_INTERRUPTED = 0x23,
    CAST_FAILURE_REASON_INTERRUPTED_COMBAT = 0x24,
    CAST_FAILURE_REASON_ITEM_ALREADY_ENCHANTED = 0x25,
    CAST_FAILURE_REASON_ITEM_GONE = 0x26,
    CAST_FAILURE_REASON_ITEM_NOT_FOUND = 0x27,
    CAST_FAILURE_REASON_ITEM_NOT_READY = 0x28,
    CAST_FAILURE_REASON_LEVEL_REQUIREMENT = 0x29,
    CAST_FAILURE_REASON_LINE_OF_SIGHT = 0x2A,
    CAST_FAILURE_REASON_LOWLEVEL = 0x2B,
    CAST_FAILURE_REASON_LOW_CASTLEVEL = 0x2C,
    CAST_FAILURE_REASON_MAINHAND_EMPTY = 0x2D,
    CAST_FAILURE_REASON_MOVING = 0x2E,
    CAST_FAILURE_REASON_NEED_AMMO = 0x2F,
    CAST_FAILURE_REASON_NEED_AMMO_POUCH = 0x30,
    CAST_FAILURE_REASON_NEED_EXOTIC_AMMO = 0x31,
    CAST_FAILURE_REASON_NOPATH = 0x32,
    CAST_FAILURE_REASON_NOT_BEHIND = 0x33,
    CAST_FAILURE_REASON_NOT_FISHABLE = 0x34,
    CAST_FAILURE_REASON_NOT_HERE = 0x35,
    CAST_FAILURE_REASON_NOT_INFRONT = 0x36,
    CAST_FAILURE_REASON_NOT_IN_CONTROL = 0x37,
    CAST_FAILURE_REASON_NOT_KNOWN = 0x38,
    CAST_FAILURE_REASON_NOT_MOUNTED = 0x39,
    CAST_FAILURE_REASON_NOT_ON_TAXI = 0x3A,
    CAST_FAILURE_REASON_NOT_ON_TRANSPORT = 0x3B,
    CAST_FAILURE_REASON_NOT_READY = 0x3C,
    CAST_FAILURE_REASON_NOT_SHAPESHIFT = 0x3D,
    CAST_FAILURE_REASON_NOT_STANDING = 0x3E,
    CAST_FAILURE_REASON_NOT_TRADEABLE = 0x3F,
    CAST_FAILURE_REASON_NOT_TRADING = 0x40,
    CAST_FAILURE_REASON_NOT_UNSHEATHED = 0x41,
    CAST_FAILURE_REASON_NOT_WHILE_GHOST = 0x42,
    CAST_FAILURE_REASON_NO_AMMO = 0x43,
    CAST_FAILURE_REASON_NO_CHARGES_REMAIN = 0x44,
    CAST_FAILURE_REASON_NO_CHAMPION = 0x45,
    CAST_FAILURE_REASON_NO_COMBO_POINTS = 0x46,
    CAST_FAILURE_REASON_NO_DUELING = 0x47,
    CAST_FAILURE_REASON_NO_ENDURANCE = 0x48,
    CAST_FAILURE_REASON_NO_FISH = 0x49,
    CAST_FAILURE_REASON_NO_ITEMS_WHILE_SHAPESHIFTED = 0x4A,
    CAST_FAILURE_REASON_NO_MOUNTS_ALLOWED = 0x4B,
    CAST_FAILURE_REASON_NO_PET = 0x4C,
    CAST_FAILURE_REASON_NO_POWER = 0x4D,
    CAST_FAILURE_REASON_NOTHING_TO_DISPEL = 0x4E,
    CAST_FAILURE_REASON_NOTHING_TO_STEAL = 0x4F,
    CAST_FAILURE_REASON_ONLY_ABOVEWATER = 0x50,
    CAST_FAILURE_REASON_ONLY_DAYTIME = 0x51,
    CAST_FAILURE_REASON_ONLY_INDOORS = 0x52,
    CAST_FAILURE_REASON_ONLY_MOUNTED = 0x53,
    CAST_FAILURE_REASON_ONLY_NIGHTTIME = 0x54,
    CAST_FAILURE_REASON_ONLY_OUTDOORS = 0x55,
    CAST_FAILURE_REASON_ONLY_SHAPESHIFT = 0x56,
    CAST_FAILURE_REASON_ONLY_STEALTHED = 0x57,
    CAST_FAILURE_REASON_ONLY_UNDERWATER = 0x58,
    CAST_FAILURE_REASON_OUT_OF_RANGE = 0x59,
    CAST_FAILURE_REASON_PACIFIED = 0x5A,
    CAST_FAILURE_REASON_POSSESSED = 0x5B,
    CAST_FAILURE_REASON_REAGENTS = 0x5C,
    CAST_FAILURE_REASON_REQUIRES_AREA = 0x5D,
    CAST_FAILURE_REASON_REQUIRES_SPELL_FOCUS = 0x5E,
    CAST_FAILURE_REASON_ROOTED = 0x5F,
    CAST_FAILURE_REASON_SILENCED = 0x60,
    CAST_FAILURE_REASON_SPELL_IN_PROGRESS = 0x61,
    CAST_FAILURE_REASON_SPELL_LEARNED = 0x62,
    CAST_FAILURE_REASON_SPELL_UNAVAILABLE = 0x63,
    CAST_FAILURE_REASON_STUNNED = 0x64,
    CAST_FAILURE_REASON_TARGETS_DEAD = 0x65,
    CAST_FAILURE_REASON_TARGET_AFFECTING_COMBAT = 0x66,
    CAST_FAILURE_REASON_TARGET_AURASTATE = 0x67,
    CAST_FAILURE_REASON_TARGET_DUELING = 0x68,
    CAST_FAILURE_REASON_TARGET_ENEMY = 0x69,
    CAST_FAILURE_REASON_TARGET_ENRAGED = 0x6A,
    CAST_FAILURE_REASON_TARGET_FRIENDLY = 0x6B,
    CAST_FAILURE_REASON_TARGET_IN_COMBAT = 0x6C,
    CAST_FAILURE_REASON_TARGET_IS_PLAYER = 0x6D,
    CAST_FAILURE_REASON_TARGET_NOT_DEAD = 0x6E,
    CAST_FAILURE_REASON_TARGET_NOT_IN_PARTY = 0x6F,
    CAST_FAILURE_REASON_TARGET_NOT_LOOTED = 0x70,
    CAST_FAILURE_REASON_TARGET_NOT_PLAYER = 0x71,
    CAST_FAILURE_REASON_TARGET_NO_POCKETS = 0x72,
    CAST_FAILURE_REASON_TARGET_NO_WEAPONS = 0x73,
    CAST_FAILURE_REASON_TARGET_UNSKINNABLE = 0x74,
    CAST_FAILURE_REASON_THIRST_SATIATED = 0x75,
    CAST_FAILURE_REASON_TOO_CLOSE = 0x76,
    CAST_FAILURE_REASON_TOO_MANY_OF_ITEM = 0x77,
    CAST_FAILURE_REASON_TOTEMS = 0x78,
    CAST_FAILURE_REASON_TRAINING_POINTS = 0x79,
    CAST_FAILURE_REASON_TRY_AGAIN = 0x7A,
    CAST_FAILURE_REASON_UNIT_NOT_BEHIND = 0x7B,
    CAST_FAILURE_REASON_UNIT_NOT_INFRONT = 0x7C,
    CAST_FAILURE_REASON_WRONG_PET_FOOD = 0x7D,
    CAST_FAILURE_REASON_NOT_WHILE_FATIGUED = 0x7E,
    CAST_FAILURE_REASON_TARGET_NOT_IN_INSTANCE = 0x7F,
    CAST_FAILURE_REASON_NOT_WHILE_TRADING = 0x80,
    CAST_FAILURE_REASON_TARGET_NOT_IN_RAID = 0x81,
    CAST_FAILURE_REASON_DISENCHANT_WHILE_LOOTING = 0x82,
    CAST_FAILURE_REASON_PROSPECT_WHILE_LOOTING = 0x83,
    CAST_FAILURE_REASON_PROSPECT_NEED_MORE = 0x84,
    CAST_FAILURE_REASON_TARGET_FREEFORALL = 0x85,
    CAST_FAILURE_REASON_NO_EDIBLE_CORPSES = 0x86,
    CAST_FAILURE_REASON_ONLY_BATTLEGROUNDS = 0x87,
    CAST_FAILURE_REASON_TARGET_NOT_GHOST = 0x88,
    CAST_FAILURE_REASON_TOO_MANY_SKILLS = 0x89,
    CAST_FAILURE_REASON_TRANSFORM_UNUSABLE = 0x8A,
    CAST_FAILURE_REASON_WRONG_WEATHER = 0x8B,
    CAST_FAILURE_REASON_DAMAGE_IMMUNE = 0x8C,
    CAST_FAILURE_REASON_PREVENTED_BY_MECHANIC = 0x8D,
    CAST_FAILURE_REASON_PLAY_TIME = 0x8E,
    CAST_FAILURE_REASON_REPUTATION = 0x8F,
    CAST_FAILURE_REASON_MIN_SKILL = 0x90,
    CAST_FAILURE_REASON_UNKNOWN = 0x91,
} e_cast_failure_reason;
static const value_string e_cast_failure_reason_strings[] =  {
    { CAST_FAILURE_REASON_AFFECTING_COMBAT, "Affecting Combat" },
    { CAST_FAILURE_REASON_ALREADY_AT_FULL_HEALTH, "Already At Full Health" },
    { CAST_FAILURE_REASON_ALREADY_AT_FULL_POWER, "Already At Full Power" },
    { CAST_FAILURE_REASON_ALREADY_BEING_TAMED, "Already Being Tamed" },
    { CAST_FAILURE_REASON_ALREADY_HAVE_CHARM, "Already Have Charm" },
    { CAST_FAILURE_REASON_ALREADY_HAVE_SUMMON, "Already Have Summon" },
    { CAST_FAILURE_REASON_ALREADY_OPEN, "Already Open" },
    { CAST_FAILURE_REASON_AURA_BOUNCED, "Aura Bounced" },
    { CAST_FAILURE_REASON_AUTOTRACK_INTERRUPTED, "Autotrack Interrupted" },
    { CAST_FAILURE_REASON_BAD_IMPLICIT_TARGETS, "Bad Implicit Targets" },
    { CAST_FAILURE_REASON_BAD_TARGETS, "Bad Targets" },
    { CAST_FAILURE_REASON_CANT_BE_CHARMED, "Cant Be Charmed" },
    { CAST_FAILURE_REASON_CANT_BE_DISENCHANTED, "Cant Be Disenchanted" },
    { CAST_FAILURE_REASON_CANT_BE_PROSPECTED, "Cant Be Prospected" },
    { CAST_FAILURE_REASON_CANT_CAST_ON_TAPPED, "Cant Cast On Tapped" },
    { CAST_FAILURE_REASON_CANT_DUEL_WHILE_INVISIBLE, "Cant Duel While Invisible" },
    { CAST_FAILURE_REASON_CANT_DUEL_WHILE_STEALTHED, "Cant Duel While Stealthed" },
    { CAST_FAILURE_REASON_CANT_STEALTH, "Cant Stealth" },
    { CAST_FAILURE_REASON_CASTER_AURASTATE, "Caster Aurastate" },
    { CAST_FAILURE_REASON_CASTER_DEAD, "Caster Dead" },
    { CAST_FAILURE_REASON_CHARMED, "Charmed" },
    { CAST_FAILURE_REASON_CHEST_IN_USE, "Chest In Use" },
    { CAST_FAILURE_REASON_CONFUSED, "Confused" },
    { CAST_FAILURE_REASON_DONT_REPORT, "Dont Report" },
    { CAST_FAILURE_REASON_EQUIPPED_ITEM, "Equipped Item" },
    { CAST_FAILURE_REASON_EQUIPPED_ITEM_CLASS, "Equipped Item Class" },
    { CAST_FAILURE_REASON_EQUIPPED_ITEM_CLASS_MAINHAND, "Equipped Item Class Mainhand" },
    { CAST_FAILURE_REASON_EQUIPPED_ITEM_CLASS_OFFHAND, "Equipped Item Class Offhand" },
    { CAST_FAILURE_REASON_ERROR, "Error" },
    { CAST_FAILURE_REASON_FIZZLE, "Fizzle" },
    { CAST_FAILURE_REASON_FLEEING, "Fleeing" },
    { CAST_FAILURE_REASON_FOOD_LOWLEVEL, "Food Lowlevel" },
    { CAST_FAILURE_REASON_HIGHLEVEL, "Highlevel" },
    { CAST_FAILURE_REASON_HUNGER_SATIATED, "Hunger Satiated" },
    { CAST_FAILURE_REASON_IMMUNE, "Immune" },
    { CAST_FAILURE_REASON_INTERRUPTED, "Interrupted" },
    { CAST_FAILURE_REASON_INTERRUPTED_COMBAT, "Interrupted Combat" },
    { CAST_FAILURE_REASON_ITEM_ALREADY_ENCHANTED, "Item Already Enchanted" },
    { CAST_FAILURE_REASON_ITEM_GONE, "Item Gone" },
    { CAST_FAILURE_REASON_ITEM_NOT_FOUND, "Item Not Found" },
    { CAST_FAILURE_REASON_ITEM_NOT_READY, "Item Not Ready" },
    { CAST_FAILURE_REASON_LEVEL_REQUIREMENT, "Level Requirement" },
    { CAST_FAILURE_REASON_LINE_OF_SIGHT, "Line Of Sight" },
    { CAST_FAILURE_REASON_LOWLEVEL, "Lowlevel" },
    { CAST_FAILURE_REASON_LOW_CASTLEVEL, "Low Castlevel" },
    { CAST_FAILURE_REASON_MAINHAND_EMPTY, "Mainhand Empty" },
    { CAST_FAILURE_REASON_MOVING, "Moving" },
    { CAST_FAILURE_REASON_NEED_AMMO, "Need Ammo" },
    { CAST_FAILURE_REASON_NEED_AMMO_POUCH, "Need Ammo Pouch" },
    { CAST_FAILURE_REASON_NEED_EXOTIC_AMMO, "Need Exotic Ammo" },
    { CAST_FAILURE_REASON_NOPATH, "Nopath" },
    { CAST_FAILURE_REASON_NOT_BEHIND, "Not Behind" },
    { CAST_FAILURE_REASON_NOT_FISHABLE, "Not Fishable" },
    { CAST_FAILURE_REASON_NOT_HERE, "Not Here" },
    { CAST_FAILURE_REASON_NOT_INFRONT, "Not Infront" },
    { CAST_FAILURE_REASON_NOT_IN_CONTROL, "Not In Control" },
    { CAST_FAILURE_REASON_NOT_KNOWN, "Not Known" },
    { CAST_FAILURE_REASON_NOT_MOUNTED, "Not Mounted" },
    { CAST_FAILURE_REASON_NOT_ON_TAXI, "Not On Taxi" },
    { CAST_FAILURE_REASON_NOT_ON_TRANSPORT, "Not On Transport" },
    { CAST_FAILURE_REASON_NOT_READY, "Not Ready" },
    { CAST_FAILURE_REASON_NOT_SHAPESHIFT, "Not Shapeshift" },
    { CAST_FAILURE_REASON_NOT_STANDING, "Not Standing" },
    { CAST_FAILURE_REASON_NOT_TRADEABLE, "Not Tradeable" },
    { CAST_FAILURE_REASON_NOT_TRADING, "Not Trading" },
    { CAST_FAILURE_REASON_NOT_UNSHEATHED, "Not Unsheathed" },
    { CAST_FAILURE_REASON_NOT_WHILE_GHOST, "Not While Ghost" },
    { CAST_FAILURE_REASON_NO_AMMO, "No Ammo" },
    { CAST_FAILURE_REASON_NO_CHARGES_REMAIN, "No Charges Remain" },
    { CAST_FAILURE_REASON_NO_CHAMPION, "No Champion" },
    { CAST_FAILURE_REASON_NO_COMBO_POINTS, "No Combo Points" },
    { CAST_FAILURE_REASON_NO_DUELING, "No Dueling" },
    { CAST_FAILURE_REASON_NO_ENDURANCE, "No Endurance" },
    { CAST_FAILURE_REASON_NO_FISH, "No Fish" },
    { CAST_FAILURE_REASON_NO_ITEMS_WHILE_SHAPESHIFTED, "No Items While Shapeshifted" },
    { CAST_FAILURE_REASON_NO_MOUNTS_ALLOWED, "No Mounts Allowed" },
    { CAST_FAILURE_REASON_NO_PET, "No Pet" },
    { CAST_FAILURE_REASON_NO_POWER, "No Power" },
    { CAST_FAILURE_REASON_NOTHING_TO_DISPEL, "Nothing To Dispel" },
    { CAST_FAILURE_REASON_NOTHING_TO_STEAL, "Nothing To Steal" },
    { CAST_FAILURE_REASON_ONLY_ABOVEWATER, "Only Abovewater" },
    { CAST_FAILURE_REASON_ONLY_DAYTIME, "Only Daytime" },
    { CAST_FAILURE_REASON_ONLY_INDOORS, "Only Indoors" },
    { CAST_FAILURE_REASON_ONLY_MOUNTED, "Only Mounted" },
    { CAST_FAILURE_REASON_ONLY_NIGHTTIME, "Only Nighttime" },
    { CAST_FAILURE_REASON_ONLY_OUTDOORS, "Only Outdoors" },
    { CAST_FAILURE_REASON_ONLY_SHAPESHIFT, "Only Shapeshift" },
    { CAST_FAILURE_REASON_ONLY_STEALTHED, "Only Stealthed" },
    { CAST_FAILURE_REASON_ONLY_UNDERWATER, "Only Underwater" },
    { CAST_FAILURE_REASON_OUT_OF_RANGE, "Out Of Range" },
    { CAST_FAILURE_REASON_PACIFIED, "Pacified" },
    { CAST_FAILURE_REASON_POSSESSED, "Possessed" },
    { CAST_FAILURE_REASON_REAGENTS, "Reagents" },
    { CAST_FAILURE_REASON_REQUIRES_AREA, "Requires Area" },
    { CAST_FAILURE_REASON_REQUIRES_SPELL_FOCUS, "Requires Spell Focus" },
    { CAST_FAILURE_REASON_ROOTED, "Rooted" },
    { CAST_FAILURE_REASON_SILENCED, "Silenced" },
    { CAST_FAILURE_REASON_SPELL_IN_PROGRESS, "Spell In Progress" },
    { CAST_FAILURE_REASON_SPELL_LEARNED, "Spell Learned" },
    { CAST_FAILURE_REASON_SPELL_UNAVAILABLE, "Spell Unavailable" },
    { CAST_FAILURE_REASON_STUNNED, "Stunned" },
    { CAST_FAILURE_REASON_TARGETS_DEAD, "Targets Dead" },
    { CAST_FAILURE_REASON_TARGET_AFFECTING_COMBAT, "Target Affecting Combat" },
    { CAST_FAILURE_REASON_TARGET_AURASTATE, "Target Aurastate" },
    { CAST_FAILURE_REASON_TARGET_DUELING, "Target Dueling" },
    { CAST_FAILURE_REASON_TARGET_ENEMY, "Target Enemy" },
    { CAST_FAILURE_REASON_TARGET_ENRAGED, "Target Enraged" },
    { CAST_FAILURE_REASON_TARGET_FRIENDLY, "Target Friendly" },
    { CAST_FAILURE_REASON_TARGET_IN_COMBAT, "Target In Combat" },
    { CAST_FAILURE_REASON_TARGET_IS_PLAYER, "Target Is Player" },
    { CAST_FAILURE_REASON_TARGET_NOT_DEAD, "Target Not Dead" },
    { CAST_FAILURE_REASON_TARGET_NOT_IN_PARTY, "Target Not In Party" },
    { CAST_FAILURE_REASON_TARGET_NOT_LOOTED, "Target Not Looted" },
    { CAST_FAILURE_REASON_TARGET_NOT_PLAYER, "Target Not Player" },
    { CAST_FAILURE_REASON_TARGET_NO_POCKETS, "Target No Pockets" },
    { CAST_FAILURE_REASON_TARGET_NO_WEAPONS, "Target No Weapons" },
    { CAST_FAILURE_REASON_TARGET_UNSKINNABLE, "Target Unskinnable" },
    { CAST_FAILURE_REASON_THIRST_SATIATED, "Thirst Satiated" },
    { CAST_FAILURE_REASON_TOO_CLOSE, "Too Close" },
    { CAST_FAILURE_REASON_TOO_MANY_OF_ITEM, "Too Many Of Item" },
    { CAST_FAILURE_REASON_TOTEMS, "Totems" },
    { CAST_FAILURE_REASON_TRAINING_POINTS, "Training Points" },
    { CAST_FAILURE_REASON_TRY_AGAIN, "Try Again" },
    { CAST_FAILURE_REASON_UNIT_NOT_BEHIND, "Unit Not Behind" },
    { CAST_FAILURE_REASON_UNIT_NOT_INFRONT, "Unit Not Infront" },
    { CAST_FAILURE_REASON_WRONG_PET_FOOD, "Wrong Pet Food" },
    { CAST_FAILURE_REASON_NOT_WHILE_FATIGUED, "Not While Fatigued" },
    { CAST_FAILURE_REASON_TARGET_NOT_IN_INSTANCE, "Target Not In Instance" },
    { CAST_FAILURE_REASON_NOT_WHILE_TRADING, "Not While Trading" },
    { CAST_FAILURE_REASON_TARGET_NOT_IN_RAID, "Target Not In Raid" },
    { CAST_FAILURE_REASON_DISENCHANT_WHILE_LOOTING, "Disenchant While Looting" },
    { CAST_FAILURE_REASON_PROSPECT_WHILE_LOOTING, "Prospect While Looting" },
    { CAST_FAILURE_REASON_PROSPECT_NEED_MORE, "Prospect Need More" },
    { CAST_FAILURE_REASON_TARGET_FREEFORALL, "Target Freeforall" },
    { CAST_FAILURE_REASON_NO_EDIBLE_CORPSES, "No Edible Corpses" },
    { CAST_FAILURE_REASON_ONLY_BATTLEGROUNDS, "Only Battlegrounds" },
    { CAST_FAILURE_REASON_TARGET_NOT_GHOST, "Target Not Ghost" },
    { CAST_FAILURE_REASON_TOO_MANY_SKILLS, "Too Many Skills" },
    { CAST_FAILURE_REASON_TRANSFORM_UNUSABLE, "Transform Unusable" },
    { CAST_FAILURE_REASON_WRONG_WEATHER, "Wrong Weather" },
    { CAST_FAILURE_REASON_DAMAGE_IMMUNE, "Damage Immune" },
    { CAST_FAILURE_REASON_PREVENTED_BY_MECHANIC, "Prevented By Mechanic" },
    { CAST_FAILURE_REASON_PLAY_TIME, "Play Time" },
    { CAST_FAILURE_REASON_REPUTATION, "Reputation" },
    { CAST_FAILURE_REASON_MIN_SKILL, "Min Skill" },
    { CAST_FAILURE_REASON_UNKNOWN, "Unknown" },
    { 0, NULL }
};

typedef enum {
    CHAT_NOTIFY_JOINED_NOTICE = 0x00,
    CHAT_NOTIFY_LEFT_NOTICE = 0x01,
    CHAT_NOTIFY_YOU_JOINED_NOTICE = 0x02,
    CHAT_NOTIFY_YOU_LEFT_NOTICE = 0x03,
    CHAT_NOTIFY_WRONG_PASSWORD_NOTICE = 0x04,
    CHAT_NOTIFY_NOT_MEMBER_NOTICE = 0x05,
    CHAT_NOTIFY_NOT_MODERATOR_NOTICE = 0x06,
    CHAT_NOTIFY_PASSWORD_CHANGED_NOTICE = 0x07,
    CHAT_NOTIFY_OWNER_CHANGED_NOTICE = 0x08,
    CHAT_NOTIFY_PLAYER_NOT_FOUND_NOTICE = 0x09,
    CHAT_NOTIFY_NOT_OWNER_NOTICE = 0x0A,
    CHAT_NOTIFY_CHANNEL_OWNER_NOTICE = 0x0B,
    CHAT_NOTIFY_MODE_CHANGE_NOTICE = 0x0C,
    CHAT_NOTIFY_ANNOUNCEMENTS_ON_NOTICE = 0x0D,
    CHAT_NOTIFY_ANNOUNCEMENTS_OFF_NOTICE = 0x0E,
    CHAT_NOTIFY_MODERATION_ON_NOTICE = 0x0F,
    CHAT_NOTIFY_MODERATION_OFF_NOTICE = 0x10,
    CHAT_NOTIFY_MUTED_NOTICE = 0x11,
    CHAT_NOTIFY_PLAYER_KICKED_NOTICE = 0x12,
    CHAT_NOTIFY_BANNED_NOTICE = 0x13,
    CHAT_NOTIFY_PLAYER_BANNED_NOTICE = 0x14,
    CHAT_NOTIFY_PLAYER_UNBANNED_NOTICE = 0x15,
    CHAT_NOTIFY_PLAYER_NOT_BANNED_NOTICE = 0x16,
    CHAT_NOTIFY_PLAYER_ALREADY_MEMBER_NOTICE = 0x17,
    CHAT_NOTIFY_INVITE_NOTICE = 0x18,
    CHAT_NOTIFY_INVITE_WRONG_FACTION_NOTICE = 0x19,
    CHAT_NOTIFY_WRONG_FACTION_NOTICE = 0x1A,
    CHAT_NOTIFY_INVALID_NAME_NOTICE = 0x1B,
    CHAT_NOTIFY_NOT_MODERATED_NOTICE = 0x1C,
    CHAT_NOTIFY_PLAYER_INVITED_NOTICE = 0x1D,
    CHAT_NOTIFY_PLAYER_INVITE_BANNED_NOTICE = 0x1E,
    CHAT_NOTIFY_THROTTLED_NOTICE = 0x1F,
} e_chat_notify;
static const value_string e_chat_notify_strings[] =  {
    { CHAT_NOTIFY_JOINED_NOTICE, "Joined Notice" },
    { CHAT_NOTIFY_LEFT_NOTICE, "Left Notice" },
    { CHAT_NOTIFY_YOU_JOINED_NOTICE, "You Joined Notice" },
    { CHAT_NOTIFY_YOU_LEFT_NOTICE, "You Left Notice" },
    { CHAT_NOTIFY_WRONG_PASSWORD_NOTICE, "Wrong Password Notice" },
    { CHAT_NOTIFY_NOT_MEMBER_NOTICE, "Not Member Notice" },
    { CHAT_NOTIFY_NOT_MODERATOR_NOTICE, "Not Moderator Notice" },
    { CHAT_NOTIFY_PASSWORD_CHANGED_NOTICE, "Password Changed Notice" },
    { CHAT_NOTIFY_OWNER_CHANGED_NOTICE, "Owner Changed Notice" },
    { CHAT_NOTIFY_PLAYER_NOT_FOUND_NOTICE, "Player Not Found Notice" },
    { CHAT_NOTIFY_NOT_OWNER_NOTICE, "Not Owner Notice" },
    { CHAT_NOTIFY_CHANNEL_OWNER_NOTICE, "Channel Owner Notice" },
    { CHAT_NOTIFY_MODE_CHANGE_NOTICE, "Mode Change Notice" },
    { CHAT_NOTIFY_ANNOUNCEMENTS_ON_NOTICE, "Announcements On Notice" },
    { CHAT_NOTIFY_ANNOUNCEMENTS_OFF_NOTICE, "Announcements Off Notice" },
    { CHAT_NOTIFY_MODERATION_ON_NOTICE, "Moderation On Notice" },
    { CHAT_NOTIFY_MODERATION_OFF_NOTICE, "Moderation Off Notice" },
    { CHAT_NOTIFY_MUTED_NOTICE, "Muted Notice" },
    { CHAT_NOTIFY_PLAYER_KICKED_NOTICE, "Player Kicked Notice" },
    { CHAT_NOTIFY_BANNED_NOTICE, "Banned Notice" },
    { CHAT_NOTIFY_PLAYER_BANNED_NOTICE, "Player Banned Notice" },
    { CHAT_NOTIFY_PLAYER_UNBANNED_NOTICE, "Player Unbanned Notice" },
    { CHAT_NOTIFY_PLAYER_NOT_BANNED_NOTICE, "Player Not Banned Notice" },
    { CHAT_NOTIFY_PLAYER_ALREADY_MEMBER_NOTICE, "Player Already Member Notice" },
    { CHAT_NOTIFY_INVITE_NOTICE, "Invite Notice" },
    { CHAT_NOTIFY_INVITE_WRONG_FACTION_NOTICE, "Invite Wrong Faction Notice" },
    { CHAT_NOTIFY_WRONG_FACTION_NOTICE, "Wrong Faction Notice" },
    { CHAT_NOTIFY_INVALID_NAME_NOTICE, "Invalid Name Notice" },
    { CHAT_NOTIFY_NOT_MODERATED_NOTICE, "Not Moderated Notice" },
    { CHAT_NOTIFY_PLAYER_INVITED_NOTICE, "Player Invited Notice" },
    { CHAT_NOTIFY_PLAYER_INVITE_BANNED_NOTICE, "Player Invite Banned Notice" },
    { CHAT_NOTIFY_THROTTLED_NOTICE, "Throttled Notice" },
    { 0, NULL }
};

typedef enum {
    MOUNT_RESULT_INVALIDMOUNTEE = 0x0,
    MOUNT_RESULT_TOOFARAWAY = 0x1,
    MOUNT_RESULT_ALREADYMOUNTED = 0x2,
    MOUNT_RESULT_NOTMOUNTABLE = 0x3,
    MOUNT_RESULT_NOTYOURPET = 0x4,
    MOUNT_RESULT_OTHER = 0x5,
    MOUNT_RESULT_LOOTING = 0x6,
    MOUNT_RESULT_RACECANTMOUNT = 0x7,
    MOUNT_RESULT_SHAPESHIFTED = 0x8,
    MOUNT_RESULT_FORCEDDISMOUNT = 0x9,
    MOUNT_RESULT_OK = 0xA,
} e_mount_result;
static const value_string e_mount_result_strings[] =  {
    { MOUNT_RESULT_INVALIDMOUNTEE, "Invalidmountee" },
    { MOUNT_RESULT_TOOFARAWAY, "Toofaraway" },
    { MOUNT_RESULT_ALREADYMOUNTED, "Alreadymounted" },
    { MOUNT_RESULT_NOTMOUNTABLE, "Notmountable" },
    { MOUNT_RESULT_NOTYOURPET, "Notyourpet" },
    { MOUNT_RESULT_OTHER, "Other" },
    { MOUNT_RESULT_LOOTING, "Looting" },
    { MOUNT_RESULT_RACECANTMOUNT, "Racecantmount" },
    { MOUNT_RESULT_SHAPESHIFTED, "Shapeshifted" },
    { MOUNT_RESULT_FORCEDDISMOUNT, "Forceddismount" },
    { MOUNT_RESULT_OK, "Ok" },
    { 0, NULL }
};

typedef enum {
    DUEL_WINNER_REASON_WON = 0x0,
    DUEL_WINNER_REASON_FLED = 0x1,
} e_duel_winner_reason;
static const value_string e_duel_winner_reason_strings[] =  {
    { DUEL_WINNER_REASON_WON, "Won" },
    { DUEL_WINNER_REASON_FLED, "Fled" },
    { 0, NULL }
};

typedef enum {
    ENVIRONMENTAL_DAMAGE_TYPE_EXHAUSTED = 0x0,
    ENVIRONMENTAL_DAMAGE_TYPE_DROWNING = 0x1,
    ENVIRONMENTAL_DAMAGE_TYPE_FALL = 0x2,
    ENVIRONMENTAL_DAMAGE_TYPE_LAVA = 0x3,
    ENVIRONMENTAL_DAMAGE_TYPE_SLIME = 0x4,
    ENVIRONMENTAL_DAMAGE_TYPE_FIRE = 0x5,
} e_environmental_damage_type;
static const value_string e_environmental_damage_type_strings[] =  {
    { ENVIRONMENTAL_DAMAGE_TYPE_EXHAUSTED, "Exhausted" },
    { ENVIRONMENTAL_DAMAGE_TYPE_DROWNING, "Drowning" },
    { ENVIRONMENTAL_DAMAGE_TYPE_FALL, "Fall" },
    { ENVIRONMENTAL_DAMAGE_TYPE_LAVA, "Lava" },
    { ENVIRONMENTAL_DAMAGE_TYPE_SLIME, "Slime" },
    { ENVIRONMENTAL_DAMAGE_TYPE_FIRE, "Fire" },
    { 0, NULL }
};

typedef enum {
    FRIEND_RESULT_DB_ERROR = 0x00,
    FRIEND_RESULT_LIST_FULL = 0x01,
    FRIEND_RESULT_ONLINE = 0x02,
    FRIEND_RESULT_OFFLINE = 0x03,
    FRIEND_RESULT_NOT_FOUND = 0x04,
    FRIEND_RESULT_REMOVED = 0x05,
    FRIEND_RESULT_ADDED_ONLINE = 0x06,
    FRIEND_RESULT_ADDED_OFFLINE = 0x07,
    FRIEND_RESULT_ALREADY = 0x08,
    FRIEND_RESULT_SELF = 0x09,
    FRIEND_RESULT_ENEMY = 0x0A,
    FRIEND_RESULT_IGNORE_FULL = 0x0B,
    FRIEND_RESULT_IGNORE_SELF = 0x0C,
    FRIEND_RESULT_IGNORE_NOT_FOUND = 0x0D,
    FRIEND_RESULT_IGNORE_ALREADY = 0x0E,
    FRIEND_RESULT_IGNORE_ADDED = 0x0F,
    FRIEND_RESULT_IGNORE_REMOVED = 0x10,
    FRIEND_RESULT_IGNORE_AMBIGUOUS = 0x11,
    FRIEND_RESULT_MUTE_FULL = 0x12,
    FRIEND_RESULT_MUTE_SELF = 0x13,
    FRIEND_RESULT_MUTE_NOT_FOUND = 0x14,
    FRIEND_RESULT_MUTE_ALREADY = 0x15,
    FRIEND_RESULT_MUTE_ADDED = 0x16,
    FRIEND_RESULT_MUTE_REMOVED = 0x17,
    FRIEND_RESULT_MUTE_AMBIGUOUS = 0x18,
    FRIEND_RESULT_UNKNOWN19 = 0x19,
    FRIEND_RESULT_UNKNOWN20 = 0x1A,
} e_friend_result;
static const value_string e_friend_result_strings[] =  {
    { FRIEND_RESULT_DB_ERROR, "Db Error" },
    { FRIEND_RESULT_LIST_FULL, "List Full" },
    { FRIEND_RESULT_ONLINE, "Online" },
    { FRIEND_RESULT_OFFLINE, "Offline" },
    { FRIEND_RESULT_NOT_FOUND, "Not Found" },
    { FRIEND_RESULT_REMOVED, "Removed" },
    { FRIEND_RESULT_ADDED_ONLINE, "Added Online" },
    { FRIEND_RESULT_ADDED_OFFLINE, "Added Offline" },
    { FRIEND_RESULT_ALREADY, "Already" },
    { FRIEND_RESULT_SELF, "Self" },
    { FRIEND_RESULT_ENEMY, "Enemy" },
    { FRIEND_RESULT_IGNORE_FULL, "Ignore Full" },
    { FRIEND_RESULT_IGNORE_SELF, "Ignore Self" },
    { FRIEND_RESULT_IGNORE_NOT_FOUND, "Ignore Not Found" },
    { FRIEND_RESULT_IGNORE_ALREADY, "Ignore Already" },
    { FRIEND_RESULT_IGNORE_ADDED, "Ignore Added" },
    { FRIEND_RESULT_IGNORE_REMOVED, "Ignore Removed" },
    { FRIEND_RESULT_IGNORE_AMBIGUOUS, "Ignore Ambiguous" },
    { FRIEND_RESULT_MUTE_FULL, "Mute Full" },
    { FRIEND_RESULT_MUTE_SELF, "Mute Self" },
    { FRIEND_RESULT_MUTE_NOT_FOUND, "Mute Not Found" },
    { FRIEND_RESULT_MUTE_ALREADY, "Mute Already" },
    { FRIEND_RESULT_MUTE_ADDED, "Mute Added" },
    { FRIEND_RESULT_MUTE_REMOVED, "Mute Removed" },
    { FRIEND_RESULT_MUTE_AMBIGUOUS, "Mute Ambiguous" },
    { FRIEND_RESULT_UNKNOWN19, "Unknown19" },
    { FRIEND_RESULT_UNKNOWN20, "Unknown20" },
    { 0, NULL }
};

typedef enum {
    GM_TICKET_RESPONSE_NOT_EXIST = 0x0,
    GM_TICKET_RESPONSE_ALREADY_EXIST = 0x1,
    GM_TICKET_RESPONSE_CREATE_SUCCESS = 0x2,
    GM_TICKET_RESPONSE_CREATE_ERROR = 0x3,
    GM_TICKET_RESPONSE_UPDATE_SUCCESS = 0x4,
    GM_TICKET_RESPONSE_UPDATE_ERROR = 0x5,
    GM_TICKET_RESPONSE_TICKET_DELETED = 0x9,
} e_gm_ticket_response;
static const value_string e_gm_ticket_response_strings[] =  {
    { GM_TICKET_RESPONSE_NOT_EXIST, "Not Exist" },
    { GM_TICKET_RESPONSE_ALREADY_EXIST, "Already Exist" },
    { GM_TICKET_RESPONSE_CREATE_SUCCESS, "Create Success" },
    { GM_TICKET_RESPONSE_CREATE_ERROR, "Create Error" },
    { GM_TICKET_RESPONSE_UPDATE_SUCCESS, "Update Success" },
    { GM_TICKET_RESPONSE_UPDATE_ERROR, "Update Error" },
    { GM_TICKET_RESPONSE_TICKET_DELETED, "Ticket Deleted" },
    { 0, NULL }
};

typedef enum {
    GM_TICKET_STATUS_DB_ERROR = 0x0,
    GM_TICKET_STATUS_HAS_TEXT = 0x6,
    GM_TICKET_STATUS_DEFAULT = 0xA,
} e_gm_ticket_status;
static const value_string e_gm_ticket_status_strings[] =  {
    { GM_TICKET_STATUS_DB_ERROR, "Db Error" },
    { GM_TICKET_STATUS_HAS_TEXT, "Has Text" },
    { GM_TICKET_STATUS_DEFAULT, "Default" },
    { 0, NULL }
};

typedef enum {
    GM_TICKET_ESCALATION_STATUS_GMTICKET_ASSIGNEDTOGM_STATUS_NOT_ASSIGNED = 0x0,
    GM_TICKET_ESCALATION_STATUS_GMTICKET_ASSIGNEDTOGM_STATUS_ASSIGNED = 0x1,
    GM_TICKET_ESCALATION_STATUS_GMTICKET_ASSIGNEDTOGM_STATUS_ESCALATED = 0x2,
} e_gm_ticket_escalation_status;
static const value_string e_gm_ticket_escalation_status_strings[] =  {
    { GM_TICKET_ESCALATION_STATUS_GMTICKET_ASSIGNEDTOGM_STATUS_NOT_ASSIGNED, "Gmticket Assignedtogm Status Not Assigned" },
    { GM_TICKET_ESCALATION_STATUS_GMTICKET_ASSIGNEDTOGM_STATUS_ASSIGNED, "Gmticket Assignedtogm Status Assigned" },
    { GM_TICKET_ESCALATION_STATUS_GMTICKET_ASSIGNEDTOGM_STATUS_ESCALATED, "Gmticket Assignedtogm Status Escalated" },
    { 0, NULL }
};

typedef enum {
    GM_TICKET_QUEUE_STATUS_ENABLED = 0x1,
    GM_TICKET_QUEUE_STATUS_DISABLED = 0x0,
} e_gm_ticket_queue_status;
static const value_string e_gm_ticket_queue_status_strings[] =  {
    { GM_TICKET_QUEUE_STATUS_ENABLED, "Enabled" },
    { GM_TICKET_QUEUE_STATUS_DISABLED, "Disabled" },
    { 0, NULL }
};

typedef enum {
    GM_TICKET_STATUS_RESPONSE_UPDATED = 0x1,
    GM_TICKET_STATUS_RESPONSE_CLOSED = 0x2,
    GM_TICKET_STATUS_RESPONSE_SURVEY = 0x3,
} e_gm_ticket_status_response;
static const value_string e_gm_ticket_status_response_strings[] =  {
    { GM_TICKET_STATUS_RESPONSE_UPDATED, "Updated" },
    { GM_TICKET_STATUS_RESPONSE_CLOSED, "Closed" },
    { GM_TICKET_STATUS_RESPONSE_SURVEY, "Survey" },
    { 0, NULL }
};

typedef enum {
    BG_TYPE_ID_NOT_ELIGIBLE = 0x00000000,
    BG_TYPE_ID_QUEUED_FOR_AV = 0x00000001,
    BG_TYPE_ID_QUEUED_FOR_WSG = 0x00000002,
    BG_TYPE_ID_QUEUED_FOR_AB = 0x00000003,
    BG_TYPE_ID_REMOVE_FROM_QUEUE = -0x0000002,
} e_bg_type_id;
static const value_string e_bg_type_id_strings[] =  {
    { BG_TYPE_ID_NOT_ELIGIBLE, "Not Eligible" },
    { BG_TYPE_ID_QUEUED_FOR_AV, "Queued For Av" },
    { BG_TYPE_ID_QUEUED_FOR_WSG, "Queued For Wsg" },
    { BG_TYPE_ID_QUEUED_FOR_AB, "Queued For Ab" },
    { BG_TYPE_ID_REMOVE_FROM_QUEUE, "Remove From Queue" },
    { 0, NULL }
};

typedef enum {
    GROUP_TYPE_NORMAL = 0x0,
    GROUP_TYPE_RAID = 0x1,
} e_group_type;
static const value_string e_group_type_strings[] =  {
    { GROUP_TYPE_NORMAL, "Normal" },
    { GROUP_TYPE_RAID, "Raid" },
    { 0, NULL }
};

typedef enum {
    GUILD_COMMAND_CREATE = 0x00,
    GUILD_COMMAND_INVITE = 0x01,
    GUILD_COMMAND_QUIT = 0x03,
    GUILD_COMMAND_FOUNDER = 0x0E,
    GUILD_COMMAND_UNKNOWN19 = 0x13,
    GUILD_COMMAND_UNKNOWN20 = 0x14,
} e_guild_command;
static const value_string e_guild_command_strings[] =  {
    { GUILD_COMMAND_CREATE, "Create" },
    { GUILD_COMMAND_INVITE, "Invite" },
    { GUILD_COMMAND_QUIT, "Quit" },
    { GUILD_COMMAND_FOUNDER, "Founder" },
    { GUILD_COMMAND_UNKNOWN19, "Unknown19" },
    { GUILD_COMMAND_UNKNOWN20, "Unknown20" },
    { 0, NULL }
};

typedef enum {
    GUILD_COMMAND_RESULT_PLAYER_NO_MORE_IN_GUILD = 0x0,
    GUILD_COMMAND_RESULT_GUILD_INTERNAL = 0x1,
    GUILD_COMMAND_RESULT_ALREADY_IN_GUILD = 0x2,
    GUILD_COMMAND_RESULT_ALREADY_IN_GUILD_S = 0x3,
    GUILD_COMMAND_RESULT_INVITED_TO_GUILD = 0x4,
    GUILD_COMMAND_RESULT_ALREADY_INVITED_TO_GUILD_S = 0x5,
    GUILD_COMMAND_RESULT_GUILD_NAME_INVALID = 0x6,
    GUILD_COMMAND_RESULT_GUILD_NAME_EXISTS_S = 0x7,
    GUILD_COMMAND_RESULT_GUILD_PERMISSIONS_OR_LEADER = 0x8,
    GUILD_COMMAND_RESULT_GUILD_PLAYER_NOT_IN_GUILD = 0x9,
    GUILD_COMMAND_RESULT_GUILD_PLAYER_NOT_IN_GUILD_S = 0xA,
    GUILD_COMMAND_RESULT_GUILD_PLAYER_NOT_FOUND_S = 0xB,
    GUILD_COMMAND_RESULT_GUILD_NOT_ALLIED = 0xC,
    GUILD_COMMAND_RESULT_GUILD_RANK_TOO_HIGH_S = 0xD,
    GUILD_COMMAND_RESULT_GUILD_RANK_TOO_LOW_S = 0xE,
} e_guild_command_result;
static const value_string e_guild_command_result_strings[] =  {
    { GUILD_COMMAND_RESULT_PLAYER_NO_MORE_IN_GUILD, "Player No More In Guild" },
    { GUILD_COMMAND_RESULT_GUILD_INTERNAL, "Guild Internal" },
    { GUILD_COMMAND_RESULT_ALREADY_IN_GUILD, "Already In Guild" },
    { GUILD_COMMAND_RESULT_ALREADY_IN_GUILD_S, "Already In Guild S" },
    { GUILD_COMMAND_RESULT_INVITED_TO_GUILD, "Invited To Guild" },
    { GUILD_COMMAND_RESULT_ALREADY_INVITED_TO_GUILD_S, "Already Invited To Guild S" },
    { GUILD_COMMAND_RESULT_GUILD_NAME_INVALID, "Guild Name Invalid" },
    { GUILD_COMMAND_RESULT_GUILD_NAME_EXISTS_S, "Guild Name Exists S" },
    { GUILD_COMMAND_RESULT_GUILD_PERMISSIONS_OR_LEADER, "Guild Permissions Or Leader" },
    { GUILD_COMMAND_RESULT_GUILD_PLAYER_NOT_IN_GUILD, "Guild Player Not In Guild" },
    { GUILD_COMMAND_RESULT_GUILD_PLAYER_NOT_IN_GUILD_S, "Guild Player Not In Guild S" },
    { GUILD_COMMAND_RESULT_GUILD_PLAYER_NOT_FOUND_S, "Guild Player Not Found S" },
    { GUILD_COMMAND_RESULT_GUILD_NOT_ALLIED, "Guild Not Allied" },
    { GUILD_COMMAND_RESULT_GUILD_RANK_TOO_HIGH_S, "Guild Rank Too High S" },
    { GUILD_COMMAND_RESULT_GUILD_RANK_TOO_LOW_S, "Guild Rank Too Low S" },
    { 0, NULL }
};

typedef enum {
    GUILD_EVENT_PROMOTION = 0x0,
    GUILD_EVENT_DEMOTION = 0x1,
    GUILD_EVENT_MOTD = 0x2,
    GUILD_EVENT_JOINED = 0x3,
    GUILD_EVENT_LEFT = 0x4,
    GUILD_EVENT_REMOVED = 0x5,
    GUILD_EVENT_LEADER_IS = 0x6,
    GUILD_EVENT_LEADER_CHANGED = 0x7,
    GUILD_EVENT_DISBANDED = 0x8,
    GUILD_EVENT_TABARD_CHANGED = 0x9,
    GUILD_EVENT_UNKNOWN10 = 0xA,
    GUILD_EVENT_ROSTER_UPDATE = 0xB,
    GUILD_EVENT_SIGNED_ON = 0xC,
    GUILD_EVENT_SIGNED_OFF = 0xD,
} e_guild_event;
static const value_string e_guild_event_strings[] =  {
    { GUILD_EVENT_PROMOTION, "Promotion" },
    { GUILD_EVENT_DEMOTION, "Demotion" },
    { GUILD_EVENT_MOTD, "Motd" },
    { GUILD_EVENT_JOINED, "Joined" },
    { GUILD_EVENT_LEFT, "Left" },
    { GUILD_EVENT_REMOVED, "Removed" },
    { GUILD_EVENT_LEADER_IS, "Leader Is" },
    { GUILD_EVENT_LEADER_CHANGED, "Leader Changed" },
    { GUILD_EVENT_DISBANDED, "Disbanded" },
    { GUILD_EVENT_TABARD_CHANGED, "Tabard Changed" },
    { GUILD_EVENT_UNKNOWN10, "Unknown10" },
    { GUILD_EVENT_ROSTER_UPDATE, "Roster Update" },
    { GUILD_EVENT_SIGNED_ON, "Signed On" },
    { GUILD_EVENT_SIGNED_OFF, "Signed Off" },
    { 0, NULL }
};

typedef enum {
    INSTANCE_RESET_FAILED_REASON_GENERAL = 0x0,
    INSTANCE_RESET_FAILED_REASON_OFFLINE = 0x1,
    INSTANCE_RESET_FAILED_REASON_ZONING = 0x2,
    INSTANCE_RESET_FAILED_REASON_SILENTLY = 0x3,
} e_instance_reset_failed_reason;
static const value_string e_instance_reset_failed_reason_strings[] =  {
    { INSTANCE_RESET_FAILED_REASON_GENERAL, "General" },
    { INSTANCE_RESET_FAILED_REASON_OFFLINE, "Offline" },
    { INSTANCE_RESET_FAILED_REASON_ZONING, "Zoning" },
    { INSTANCE_RESET_FAILED_REASON_SILENTLY, "Silently" },
    { 0, NULL }
};

typedef enum {
    INVENTORY_RESULT_OK = 0x00,
    INVENTORY_RESULT_CANT_EQUIP_LEVEL_I = 0x01,
    INVENTORY_RESULT_CANT_EQUIP_SKILL = 0x02,
    INVENTORY_RESULT_ITEM_DOESNT_GO_TO_SLOT = 0x03,
    INVENTORY_RESULT_BAG_FULL = 0x04,
    INVENTORY_RESULT_NONEMPTY_BAG_OVER_OTHER_BAG = 0x05,
    INVENTORY_RESULT_CANT_TRADE_EQUIP_BAGS = 0x06,
    INVENTORY_RESULT_ONLY_AMMO_CAN_GO_HERE = 0x07,
    INVENTORY_RESULT_NO_REQUIRED_PROFICIENCY = 0x08,
    INVENTORY_RESULT_NO_EQUIPMENT_SLOT_AVAILABLE = 0x09,
    INVENTORY_RESULT_YOU_CAN_NEVER_USE_THAT_ITEM = 0x0A,
    INVENTORY_RESULT_YOU_CAN_NEVER_USE_THAT_ITEM2 = 0x0B,
    INVENTORY_RESULT_NO_EQUIPMENT_SLOT_AVAILABLE2 = 0x0C,
    INVENTORY_RESULT_CANT_EQUIP_WITH_TWOHANDED = 0x0D,
    INVENTORY_RESULT_CANT_DUAL_WIELD = 0x0E,
    INVENTORY_RESULT_ITEM_DOESNT_GO_INTO_BAG = 0x0F,
    INVENTORY_RESULT_ITEM_DOESNT_GO_INTO_BAG2 = 0x10,
    INVENTORY_RESULT_CANT_CARRY_MORE_OF_THIS = 0x11,
    INVENTORY_RESULT_NO_EQUIPMENT_SLOT_AVAILABLE3 = 0x12,
    INVENTORY_RESULT_ITEM_CANT_STACK = 0x13,
    INVENTORY_RESULT_ITEM_CANT_BE_EQUIPPED = 0x14,
    INVENTORY_RESULT_ITEMS_CANT_BE_SWAPPED = 0x15,
    INVENTORY_RESULT_SLOT_IS_EMPTY = 0x16,
    INVENTORY_RESULT_ITEM_NOT_FOUND = 0x17,
    INVENTORY_RESULT_CANT_DROP_SOULBOUND = 0x18,
    INVENTORY_RESULT_OUT_OF_RANGE = 0x19,
    INVENTORY_RESULT_TRIED_TO_SPLIT_MORE_THAN_COUNT = 0x1A,
    INVENTORY_RESULT_COULDNT_SPLIT_ITEMS = 0x1B,
    INVENTORY_RESULT_MISSING_REAGENT = 0x1C,
    INVENTORY_RESULT_NOT_ENOUGH_MONEY = 0x1D,
    INVENTORY_RESULT_NOT_A_BAG = 0x1E,
    INVENTORY_RESULT_CAN_ONLY_DO_WITH_EMPTY_BAGS = 0x1F,
    INVENTORY_RESULT_DONT_OWN_THAT_ITEM = 0x20,
    INVENTORY_RESULT_CAN_EQUIP_ONLY1_QUIVER = 0x21,
    INVENTORY_RESULT_MUST_PURCHASE_THAT_BAG_SLOT = 0x22,
    INVENTORY_RESULT_TOO_FAR_AWAY_FROM_BANK = 0x23,
    INVENTORY_RESULT_ITEM_LOCKED = 0x24,
    INVENTORY_RESULT_YOU_ARE_STUNNED = 0x25,
    INVENTORY_RESULT_YOU_ARE_DEAD = 0x26,
    INVENTORY_RESULT_CANT_DO_RIGHT_NOW = 0x27,
    INVENTORY_RESULT_INT_BAG_ERROR = 0x28,
    INVENTORY_RESULT_CAN_EQUIP_ONLY1_BOLT = 0x29,
    INVENTORY_RESULT_CAN_EQUIP_ONLY1_AMMOPOUCH = 0x2A,
    INVENTORY_RESULT_STACKABLE_CANT_BE_WRAPPED = 0x2B,
    INVENTORY_RESULT_EQUIPPED_CANT_BE_WRAPPED = 0x2C,
    INVENTORY_RESULT_WRAPPED_CANT_BE_WRAPPED = 0x2D,
    INVENTORY_RESULT_BOUND_CANT_BE_WRAPPED = 0x2E,
    INVENTORY_RESULT_UNIQUE_CANT_BE_WRAPPED = 0x2F,
    INVENTORY_RESULT_BAGS_CANT_BE_WRAPPED = 0x30,
    INVENTORY_RESULT_ALREADY_LOOTED = 0x31,
    INVENTORY_RESULT_INVENTORY_FULL = 0x32,
    INVENTORY_RESULT_BANK_FULL = 0x33,
    INVENTORY_RESULT_ITEM_IS_CURRENTLY_SOLD_OUT = 0x34,
    INVENTORY_RESULT_BAG_FULL3 = 0x35,
    INVENTORY_RESULT_ITEM_NOT_FOUND2 = 0x36,
    INVENTORY_RESULT_ITEM_CANT_STACK2 = 0x37,
    INVENTORY_RESULT_BAG_FULL4 = 0x38,
    INVENTORY_RESULT_ITEM_SOLD_OUT = 0x39,
    INVENTORY_RESULT_OBJECT_IS_BUSY = 0x3A,
    INVENTORY_RESULT_NONE = 0x3B,
    INVENTORY_RESULT_NOT_IN_COMBAT = 0x3C,
    INVENTORY_RESULT_NOT_WHILE_DISARMED = 0x3D,
    INVENTORY_RESULT_BAG_FULL6 = 0x3E,
    INVENTORY_RESULT_CANT_EQUIP_RANK = 0x3F,
    INVENTORY_RESULT_CANT_EQUIP_REPUTATION = 0x40,
    INVENTORY_RESULT_TOO_MANY_SPECIAL_BAGS = 0x41,
    INVENTORY_RESULT_LOOT_CANT_LOOT_THAT_NOW = 0x42,
} e_inventory_result;
static const value_string e_inventory_result_strings[] =  {
    { INVENTORY_RESULT_OK, "Ok" },
    { INVENTORY_RESULT_CANT_EQUIP_LEVEL_I, "Cant Equip Level I" },
    { INVENTORY_RESULT_CANT_EQUIP_SKILL, "Cant Equip Skill" },
    { INVENTORY_RESULT_ITEM_DOESNT_GO_TO_SLOT, "Item Doesnt Go To Slot" },
    { INVENTORY_RESULT_BAG_FULL, "Bag Full" },
    { INVENTORY_RESULT_NONEMPTY_BAG_OVER_OTHER_BAG, "Nonempty Bag Over Other Bag" },
    { INVENTORY_RESULT_CANT_TRADE_EQUIP_BAGS, "Cant Trade Equip Bags" },
    { INVENTORY_RESULT_ONLY_AMMO_CAN_GO_HERE, "Only Ammo Can Go Here" },
    { INVENTORY_RESULT_NO_REQUIRED_PROFICIENCY, "No Required Proficiency" },
    { INVENTORY_RESULT_NO_EQUIPMENT_SLOT_AVAILABLE, "No Equipment Slot Available" },
    { INVENTORY_RESULT_YOU_CAN_NEVER_USE_THAT_ITEM, "You Can Never Use That Item" },
    { INVENTORY_RESULT_YOU_CAN_NEVER_USE_THAT_ITEM2, "You Can Never Use That Item2" },
    { INVENTORY_RESULT_NO_EQUIPMENT_SLOT_AVAILABLE2, "No Equipment Slot Available2" },
    { INVENTORY_RESULT_CANT_EQUIP_WITH_TWOHANDED, "Cant Equip With Twohanded" },
    { INVENTORY_RESULT_CANT_DUAL_WIELD, "Cant Dual Wield" },
    { INVENTORY_RESULT_ITEM_DOESNT_GO_INTO_BAG, "Item Doesnt Go Into Bag" },
    { INVENTORY_RESULT_ITEM_DOESNT_GO_INTO_BAG2, "Item Doesnt Go Into Bag2" },
    { INVENTORY_RESULT_CANT_CARRY_MORE_OF_THIS, "Cant Carry More Of This" },
    { INVENTORY_RESULT_NO_EQUIPMENT_SLOT_AVAILABLE3, "No Equipment Slot Available3" },
    { INVENTORY_RESULT_ITEM_CANT_STACK, "Item Cant Stack" },
    { INVENTORY_RESULT_ITEM_CANT_BE_EQUIPPED, "Item Cant Be Equipped" },
    { INVENTORY_RESULT_ITEMS_CANT_BE_SWAPPED, "Items Cant Be Swapped" },
    { INVENTORY_RESULT_SLOT_IS_EMPTY, "Slot Is Empty" },
    { INVENTORY_RESULT_ITEM_NOT_FOUND, "Item Not Found" },
    { INVENTORY_RESULT_CANT_DROP_SOULBOUND, "Cant Drop Soulbound" },
    { INVENTORY_RESULT_OUT_OF_RANGE, "Out Of Range" },
    { INVENTORY_RESULT_TRIED_TO_SPLIT_MORE_THAN_COUNT, "Tried To Split More Than Count" },
    { INVENTORY_RESULT_COULDNT_SPLIT_ITEMS, "Couldnt Split Items" },
    { INVENTORY_RESULT_MISSING_REAGENT, "Missing Reagent" },
    { INVENTORY_RESULT_NOT_ENOUGH_MONEY, "Not Enough Money" },
    { INVENTORY_RESULT_NOT_A_BAG, "Not A Bag" },
    { INVENTORY_RESULT_CAN_ONLY_DO_WITH_EMPTY_BAGS, "Can Only Do With Empty Bags" },
    { INVENTORY_RESULT_DONT_OWN_THAT_ITEM, "Dont Own That Item" },
    { INVENTORY_RESULT_CAN_EQUIP_ONLY1_QUIVER, "Can Equip Only1 Quiver" },
    { INVENTORY_RESULT_MUST_PURCHASE_THAT_BAG_SLOT, "Must Purchase That Bag Slot" },
    { INVENTORY_RESULT_TOO_FAR_AWAY_FROM_BANK, "Too Far Away From Bank" },
    { INVENTORY_RESULT_ITEM_LOCKED, "Item Locked" },
    { INVENTORY_RESULT_YOU_ARE_STUNNED, "You Are Stunned" },
    { INVENTORY_RESULT_YOU_ARE_DEAD, "You Are Dead" },
    { INVENTORY_RESULT_CANT_DO_RIGHT_NOW, "Cant Do Right Now" },
    { INVENTORY_RESULT_INT_BAG_ERROR, "Int Bag Error" },
    { INVENTORY_RESULT_CAN_EQUIP_ONLY1_BOLT, "Can Equip Only1 Bolt" },
    { INVENTORY_RESULT_CAN_EQUIP_ONLY1_AMMOPOUCH, "Can Equip Only1 Ammopouch" },
    { INVENTORY_RESULT_STACKABLE_CANT_BE_WRAPPED, "Stackable Cant Be Wrapped" },
    { INVENTORY_RESULT_EQUIPPED_CANT_BE_WRAPPED, "Equipped Cant Be Wrapped" },
    { INVENTORY_RESULT_WRAPPED_CANT_BE_WRAPPED, "Wrapped Cant Be Wrapped" },
    { INVENTORY_RESULT_BOUND_CANT_BE_WRAPPED, "Bound Cant Be Wrapped" },
    { INVENTORY_RESULT_UNIQUE_CANT_BE_WRAPPED, "Unique Cant Be Wrapped" },
    { INVENTORY_RESULT_BAGS_CANT_BE_WRAPPED, "Bags Cant Be Wrapped" },
    { INVENTORY_RESULT_ALREADY_LOOTED, "Already Looted" },
    { INVENTORY_RESULT_INVENTORY_FULL, "Inventory Full" },
    { INVENTORY_RESULT_BANK_FULL, "Bank Full" },
    { INVENTORY_RESULT_ITEM_IS_CURRENTLY_SOLD_OUT, "Item Is Currently Sold Out" },
    { INVENTORY_RESULT_BAG_FULL3, "Bag Full3" },
    { INVENTORY_RESULT_ITEM_NOT_FOUND2, "Item Not Found2" },
    { INVENTORY_RESULT_ITEM_CANT_STACK2, "Item Cant Stack2" },
    { INVENTORY_RESULT_BAG_FULL4, "Bag Full4" },
    { INVENTORY_RESULT_ITEM_SOLD_OUT, "Item Sold Out" },
    { INVENTORY_RESULT_OBJECT_IS_BUSY, "Object Is Busy" },
    { INVENTORY_RESULT_NONE, "None" },
    { INVENTORY_RESULT_NOT_IN_COMBAT, "Not In Combat" },
    { INVENTORY_RESULT_NOT_WHILE_DISARMED, "Not While Disarmed" },
    { INVENTORY_RESULT_BAG_FULL6, "Bag Full6" },
    { INVENTORY_RESULT_CANT_EQUIP_RANK, "Cant Equip Rank" },
    { INVENTORY_RESULT_CANT_EQUIP_REPUTATION, "Cant Equip Reputation" },
    { INVENTORY_RESULT_TOO_MANY_SPECIAL_BAGS, "Too Many Special Bags" },
    { INVENTORY_RESULT_LOOT_CANT_LOOT_THAT_NOW, "Loot Cant Loot That Now" },
    { 0, NULL }
};

typedef enum {
    NEW_ITEM_SOURCE_LOOTED = 0x0,
    NEW_ITEM_SOURCE_FROM_NPC = 0x1,
} e_new_item_source;
static const value_string e_new_item_source_strings[] =  {
    { NEW_ITEM_SOURCE_LOOTED, "Looted" },
    { NEW_ITEM_SOURCE_FROM_NPC, "From Npc" },
    { 0, NULL }
};

typedef enum {
    NEW_ITEM_CREATION_TYPE_RECEIVED = 0x0,
    NEW_ITEM_CREATION_TYPE_CREATED = 0x1,
} e_new_item_creation_type;
static const value_string e_new_item_creation_type_strings[] =  {
    { NEW_ITEM_CREATION_TYPE_RECEIVED, "Received" },
    { NEW_ITEM_CREATION_TYPE_CREATED, "Created" },
    { 0, NULL }
};

typedef enum {
    NEW_ITEM_CHAT_ALERT_DO_NOT_SHOW = 0x0,
    NEW_ITEM_CHAT_ALERT_SHOW = 0x1,
} e_new_item_chat_alert;
static const value_string e_new_item_chat_alert_strings[] =  {
    { NEW_ITEM_CHAT_ALERT_DO_NOT_SHOW, "Do Not Show" },
    { NEW_ITEM_CHAT_ALERT_SHOW, "Show" },
    { 0, NULL }
};

typedef enum {
    ITEM_CLASS_CONSUMABLE = 0x0,
    ITEM_CLASS_CONTAINER = 0x1,
    ITEM_CLASS_WEAPON = 0x2,
    ITEM_CLASS_RESERVED_1 = 0x3,
    ITEM_CLASS_ARMOR = 0x4,
    ITEM_CLASS_REAGENT = 0x5,
    ITEM_CLASS_PROJECTILE = 0x6,
    ITEM_CLASS_TRADE_GOODS = 0x7,
    ITEM_CLASS_RESERVED_2 = 0x8,
    ITEM_CLASS_RECIPE = 0x9,
    ITEM_CLASS_RESERVED_3 = 0xA,
    ITEM_CLASS_QUIVER = 0xB,
    ITEM_CLASS_QUEST = 0xC,
    ITEM_CLASS_KEY = 0xD,
    ITEM_CLASS_RESERVED_4 = 0xE,
    ITEM_CLASS_MISC = 0xF,
} e_item_class;
static const value_string e_item_class_strings[] =  {
    { ITEM_CLASS_CONSUMABLE, "Consumable" },
    { ITEM_CLASS_CONTAINER, "Container" },
    { ITEM_CLASS_WEAPON, "Weapon" },
    { ITEM_CLASS_RESERVED_1, "Reserved 1" },
    { ITEM_CLASS_ARMOR, "Armor" },
    { ITEM_CLASS_REAGENT, "Reagent" },
    { ITEM_CLASS_PROJECTILE, "Projectile" },
    { ITEM_CLASS_TRADE_GOODS, "Trade Goods" },
    { ITEM_CLASS_RESERVED_2, "Reserved 2" },
    { ITEM_CLASS_RECIPE, "Recipe" },
    { ITEM_CLASS_RESERVED_3, "Reserved 3" },
    { ITEM_CLASS_QUIVER, "Quiver" },
    { ITEM_CLASS_QUEST, "Quest" },
    { ITEM_CLASS_KEY, "Key" },
    { ITEM_CLASS_RESERVED_4, "Reserved 4" },
    { ITEM_CLASS_MISC, "Misc" },
    { 0, NULL }
};

typedef enum {
    LOGOUT_RESULT_SUCCESS = 0x0,
    LOGOUT_RESULT_FAILURE_IN_COMBAT = 0x1,
    LOGOUT_RESULT_FAILURE_FROZEN_BY_GM = 0x2,
    LOGOUT_RESULT_FAILURE_JUMPING_OR_FALLING = 0x3,
} e_logout_result;
static const value_string e_logout_result_strings[] =  {
    { LOGOUT_RESULT_SUCCESS, "Success" },
    { LOGOUT_RESULT_FAILURE_IN_COMBAT, "Failure In Combat" },
    { LOGOUT_RESULT_FAILURE_FROZEN_BY_GM, "Failure Frozen By Gm" },
    { LOGOUT_RESULT_FAILURE_JUMPING_OR_FALLING, "Failure Jumping Or Falling" },
    { 0, NULL }
};

typedef enum {
    LOGOUT_SPEED_DELAYED = 0x0,
    LOGOUT_SPEED_INSTANT = 0x1,
} e_logout_speed;
static const value_string e_logout_speed_strings[] =  {
    { LOGOUT_SPEED_DELAYED, "Delayed" },
    { LOGOUT_SPEED_INSTANT, "Instant" },
    { 0, NULL }
};

typedef enum {
    EXPERIENCE_AWARD_TYPE_KILL = 0x0,
    EXPERIENCE_AWARD_TYPE_NON_KILL = 0x1,
} e_experience_award_type;
static const value_string e_experience_award_type_strings[] =  {
    { EXPERIENCE_AWARD_TYPE_KILL, "Kill" },
    { EXPERIENCE_AWARD_TYPE_NON_KILL, "Non Kill" },
    { 0, NULL }
};

typedef enum {
    LOOT_METHOD_CORPSE = 0x01,
    LOOT_METHOD_PICKPOCKETING = 0x02,
    LOOT_METHOD_FISHING = 0x03,
    LOOT_METHOD_DISENCHANTING = 0x04,
    LOOT_METHOD_SKINNING = 0x06,
    LOOT_METHOD_FISHINGHOLE = 0x14,
    LOOT_METHOD_FISHING_FAIL = 0x15,
    LOOT_METHOD_INSIGNIA = 0x16,
} e_loot_method;
static const value_string e_loot_method_strings[] =  {
    { LOOT_METHOD_CORPSE, "Corpse" },
    { LOOT_METHOD_PICKPOCKETING, "Pickpocketing" },
    { LOOT_METHOD_FISHING, "Fishing" },
    { LOOT_METHOD_DISENCHANTING, "Disenchanting" },
    { LOOT_METHOD_SKINNING, "Skinning" },
    { LOOT_METHOD_FISHINGHOLE, "Fishinghole" },
    { LOOT_METHOD_FISHING_FAIL, "Fishing Fail" },
    { LOOT_METHOD_INSIGNIA, "Insignia" },
    { 0, NULL }
};

typedef enum {
    MEETING_STONE_FAILURE_MEETINGSTONE_FAIL_PARTYLEADER = 0x1,
    MEETING_STONE_FAILURE_MEETINGSTONE_FAIL_FULL_GROUP = 0x2,
    MEETING_STONE_FAILURE_MEETINGSTONE_FAIL_RAID_GROUP = 0x3,
} e_meeting_stone_failure;
static const value_string e_meeting_stone_failure_strings[] =  {
    { MEETING_STONE_FAILURE_MEETINGSTONE_FAIL_PARTYLEADER, "Meetingstone Fail Partyleader" },
    { MEETING_STONE_FAILURE_MEETINGSTONE_FAIL_FULL_GROUP, "Meetingstone Fail Full Group" },
    { MEETING_STONE_FAILURE_MEETINGSTONE_FAIL_RAID_GROUP, "Meetingstone Fail Raid Group" },
    { 0, NULL }
};

typedef enum {
    MEETING_STONE_STATUS_LEAVE_QUEUE = 0x0,
    MEETING_STONE_STATUS_JOINED_QUEUE = 0x1,
    MEETING_STONE_STATUS_PARTY_MEMBER_LEFT_LFG = 0x2,
    MEETING_STONE_STATUS_PARTY_MEMBER_REMOVED_PARTY_REMOVED = 0x3,
    MEETING_STONE_STATUS_LOOKING_FOR_NEW_PARTY_IN_QUEUE = 0x4,
    MEETING_STONE_STATUS_NONE = 0x5,
} e_meeting_stone_status;
static const value_string e_meeting_stone_status_strings[] =  {
    { MEETING_STONE_STATUS_LEAVE_QUEUE, "Leave Queue" },
    { MEETING_STONE_STATUS_JOINED_QUEUE, "Joined Queue" },
    { MEETING_STONE_STATUS_PARTY_MEMBER_LEFT_LFG, "Party Member Left Lfg" },
    { MEETING_STONE_STATUS_PARTY_MEMBER_REMOVED_PARTY_REMOVED, "Party Member Removed Party Removed" },
    { MEETING_STONE_STATUS_LOOKING_FOR_NEW_PARTY_IN_QUEUE, "Looking For New Party In Queue" },
    { MEETING_STONE_STATUS_NONE, "None" },
    { 0, NULL }
};

typedef enum {
    PLAYER_CHAT_TAG_NONE = 0x0,
    PLAYER_CHAT_TAG_AFK = 0x1,
    PLAYER_CHAT_TAG_DND = 0x2,
    PLAYER_CHAT_TAG_GM = 0x3,
} e_player_chat_tag;
static const value_string e_player_chat_tag_strings[] =  {
    { PLAYER_CHAT_TAG_NONE, "None" },
    { PLAYER_CHAT_TAG_AFK, "Afk" },
    { PLAYER_CHAT_TAG_DND, "Dnd" },
    { PLAYER_CHAT_TAG_GM, "Gm" },
    { 0, NULL }
};

typedef enum {
    MONSTER_MOVE_TYPE_NORMAL = 0x0,
    MONSTER_MOVE_TYPE_STOP = 0x1,
    MONSTER_MOVE_TYPE_FACING_SPOT = 0x2,
    MONSTER_MOVE_TYPE_FACING_TARGET = 0x3,
    MONSTER_MOVE_TYPE_FACING_ANGLE = 0x4,
} e_monster_move_type;
static const value_string e_monster_move_type_strings[] =  {
    { MONSTER_MOVE_TYPE_NORMAL, "Normal" },
    { MONSTER_MOVE_TYPE_STOP, "Stop" },
    { MONSTER_MOVE_TYPE_FACING_SPOT, "Facing Spot" },
    { MONSTER_MOVE_TYPE_FACING_TARGET, "Facing Target" },
    { MONSTER_MOVE_TYPE_FACING_ANGLE, "Facing Angle" },
    { 0, NULL }
};

typedef enum {
    PARTY_OPERATION_INVITE = 0x0,
    PARTY_OPERATION_LEAVE = 0x2,
} e_party_operation;
static const value_string e_party_operation_strings[] =  {
    { PARTY_OPERATION_INVITE, "Invite" },
    { PARTY_OPERATION_LEAVE, "Leave" },
    { 0, NULL }
};

typedef enum {
    PARTY_RESULT_SUCCESS = 0x0,
    PARTY_RESULT_BAD_PLAYER_NAME = 0x1,
    PARTY_RESULT_TARGET_NOT_IN_GROUP = 0x2,
    PARTY_RESULT_GROUP_FULL = 0x3,
    PARTY_RESULT_ALREADY_IN_GROUP = 0x4,
    PARTY_RESULT_NOT_IN_GROUP = 0x5,
    PARTY_RESULT_NOT_LEADER = 0x6,
    PARTY_RESULT_PLAYER_WRONG_FACTION = 0x7,
    PARTY_RESULT_IGNORING_YOU = 0x8,
} e_party_result;
static const value_string e_party_result_strings[] =  {
    { PARTY_RESULT_SUCCESS, "Success" },
    { PARTY_RESULT_BAD_PLAYER_NAME, "Bad Player Name" },
    { PARTY_RESULT_TARGET_NOT_IN_GROUP, "Target Not In Group" },
    { PARTY_RESULT_GROUP_FULL, "Group Full" },
    { PARTY_RESULT_ALREADY_IN_GROUP, "Already In Group" },
    { PARTY_RESULT_NOT_IN_GROUP, "Not In Group" },
    { PARTY_RESULT_NOT_LEADER, "Not Leader" },
    { PARTY_RESULT_PLAYER_WRONG_FACTION, "Player Wrong Faction" },
    { PARTY_RESULT_IGNORING_YOU, "Ignoring You" },
    { 0, NULL }
};

typedef enum {
    POWER_MANA = 0x00,
    POWER_RAGE = 0x01,
    POWER_FOCUS = 0x02,
    POWER_ENERGY = 0x03,
    POWER_HAPPINESS = 0x04,
    POWER_HEALTH = 0xFE,
} e_power;
static const value_string e_power_strings[] =  {
    { POWER_MANA, "Mana" },
    { POWER_RAGE, "Rage" },
    { POWER_FOCUS, "Focus" },
    { POWER_ENERGY, "Energy" },
    { POWER_HAPPINESS, "Happiness" },
    { POWER_HEALTH, "Health" },
    { 0, NULL }
};

typedef enum {
    TIMER_TYPE_FATIGUE = 0x0,
    TIMER_TYPE_BREATH = 0x1,
    TIMER_TYPE_FEIGNDEATH = 0x2,
    TIMER_TYPE_ENVIRONMENTAL = 0x3,
} e_timer_type;
static const value_string e_timer_type_strings[] =  {
    { TIMER_TYPE_FATIGUE, "Fatigue" },
    { TIMER_TYPE_BREATH, "Breath" },
    { TIMER_TYPE_FEIGNDEATH, "Feigndeath" },
    { TIMER_TYPE_ENVIRONMENTAL, "Environmental" },
    { 0, NULL }
};

typedef enum {
    PETITION_RESULT_OK = 0x0,
    PETITION_RESULT_ALREADY_SIGNED = 0x1,
    PETITION_RESULT_ALREADY_IN_GUILD = 0x2,
    PETITION_RESULT_CANT_SIGN_OWN = 0x3,
    PETITION_RESULT_NEED_MORE = 0x4,
    PETITION_RESULT_NOT_SERVER = 0x5,
} e_petition_result;
static const value_string e_petition_result_strings[] =  {
    { PETITION_RESULT_OK, "Ok" },
    { PETITION_RESULT_ALREADY_SIGNED, "Already Signed" },
    { PETITION_RESULT_ALREADY_IN_GUILD, "Already In Guild" },
    { PETITION_RESULT_CANT_SIGN_OWN, "Cant Sign Own" },
    { PETITION_RESULT_NEED_MORE, "Need More" },
    { PETITION_RESULT_NOT_SERVER, "Not Server" },
    { 0, NULL }
};

typedef enum {
    PET_FEEDBACK_PET_DEAD = 0x1,
    PET_FEEDBACK_NOTHING_TO_EAT = 0x2,
    PET_FEEDBACK_CANT_ATTACK_TARGET = 0x3,
    PET_FEEDBACK_NO_PATH_TO = 0x4,
} e_pet_feedback;
static const value_string e_pet_feedback_strings[] =  {
    { PET_FEEDBACK_PET_DEAD, "Pet Dead" },
    { PET_FEEDBACK_NOTHING_TO_EAT, "Nothing To Eat" },
    { PET_FEEDBACK_CANT_ATTACK_TARGET, "Cant Attack Target" },
    { PET_FEEDBACK_NO_PATH_TO, "No Path To" },
    { 0, NULL }
};

typedef enum {
    PET_TALK_REASON_SPECIAL_SPELL = 0x0,
    PET_TALK_REASON_ATTACK = 0x1,
} e_pet_talk_reason;
static const value_string e_pet_talk_reason_strings[] =  {
    { PET_TALK_REASON_SPECIAL_SPELL, "Special Spell" },
    { PET_TALK_REASON_ATTACK, "Attack" },
    { 0, NULL }
};

typedef enum {
    SPELL_CAST_RESULT_AFFECTING_COMBAT = 0x00,
    SPELL_CAST_RESULT_ALREADY_AT_FULL_HEALTH = 0x01,
    SPELL_CAST_RESULT_ALREADY_AT_FULL_MANA = 0x02,
    SPELL_CAST_RESULT_ALREADY_BEING_TAMED = 0x03,
    SPELL_CAST_RESULT_ALREADY_HAVE_CHARM = 0x04,
    SPELL_CAST_RESULT_ALREADY_HAVE_SUMMON = 0x05,
    SPELL_CAST_RESULT_ALREADY_OPEN = 0x06,
    SPELL_CAST_RESULT_MORE_POWERFUL_SPELL_ACTIVE = 0x07,
    SPELL_CAST_RESULT_BAD_IMPLICIT_TARGETS = 0x09,
    SPELL_CAST_RESULT_BAD_TARGETS = 0x0A,
    SPELL_CAST_RESULT_CANT_BE_CHARMED = 0x0B,
    SPELL_CAST_RESULT_CANT_BE_DISENCHANTED = 0x0C,
    SPELL_CAST_RESULT_CANT_BE_PROSPECTED = 0x0D,
    SPELL_CAST_RESULT_CANT_CAST_ON_TAPPED = 0x0E,
    SPELL_CAST_RESULT_CANT_DUEL_WHILE_INVISIBLE = 0x0F,
    SPELL_CAST_RESULT_CANT_DUEL_WHILE_STEALTHED = 0x10,
    SPELL_CAST_RESULT_CANT_TOO_CLOSE_TO_ENEMY = 0x11,
    SPELL_CAST_RESULT_CANT_DO_THAT_YET = 0x12,
    SPELL_CAST_RESULT_CASTER_DEAD = 0x13,
    SPELL_CAST_RESULT_CHARMED = 0x14,
    SPELL_CAST_RESULT_CHEST_IN_USE = 0x15,
    SPELL_CAST_RESULT_CONFUSED = 0x16,
    SPELL_CAST_RESULT_DONT_REPORT = 0x17,
    SPELL_CAST_RESULT_EQUIPPED_ITEM = 0x18,
    SPELL_CAST_RESULT_EQUIPPED_ITEM_CLASS = 0x19,
    SPELL_CAST_RESULT_EQUIPPED_ITEM_CLASS_MAINHAND = 0x1A,
    SPELL_CAST_RESULT_EQUIPPED_ITEM_CLASS_OFFHAND = 0x1B,
    SPELL_CAST_RESULT_ERROR = 0x1C,
    SPELL_CAST_RESULT_FIZZLE = 0x1D,
    SPELL_CAST_RESULT_FLEEING = 0x1E,
    SPELL_CAST_RESULT_FOOD_LOWLEVEL = 0x1F,
    SPELL_CAST_RESULT_HIGHLEVEL = 0x20,
    SPELL_CAST_RESULT_IMMUNE = 0x22,
    SPELL_CAST_RESULT_INTERRUPTED = 0x23,
    SPELL_CAST_RESULT_INTERRUPTED_COMBAT = 0x24,
    SPELL_CAST_RESULT_ITEM_ALREADY_ENCHANTED = 0x25,
    SPELL_CAST_RESULT_ITEM_GONE = 0x26,
    SPELL_CAST_RESULT_ENCHANT_NOT_EXISTING_ITEM = 0x27,
    SPELL_CAST_RESULT_ITEM_NOT_READY = 0x28,
    SPELL_CAST_RESULT_LEVEL_REQUIREMENT = 0x29,
    SPELL_CAST_RESULT_LINE_OF_SIGHT = 0x2A,
    SPELL_CAST_RESULT_LOWLEVEL = 0x2B,
    SPELL_CAST_RESULT_SKILL_NOT_HIGH_ENOUGH = 0x2C,
    SPELL_CAST_RESULT_MAINHAND_EMPTY = 0x2D,
    SPELL_CAST_RESULT_MOVING = 0x2E,
    SPELL_CAST_RESULT_NEED_AMMO = 0x2F,
    SPELL_CAST_RESULT_NEED_REQUIRES_SOMETHING = 0x30,
    SPELL_CAST_RESULT_NEED_EXOTIC_AMMO = 0x31,
    SPELL_CAST_RESULT_NOPATH = 0x32,
    SPELL_CAST_RESULT_NOT_BEHIND = 0x33,
    SPELL_CAST_RESULT_NOT_FISHABLE = 0x34,
    SPELL_CAST_RESULT_NOT_HERE = 0x35,
    SPELL_CAST_RESULT_NOT_INFRONT = 0x36,
    SPELL_CAST_RESULT_NOT_IN_CONTROL = 0x37,
    SPELL_CAST_RESULT_NOT_KNOWN = 0x38,
    SPELL_CAST_RESULT_NOT_MOUNTED = 0x39,
    SPELL_CAST_RESULT_NOT_ON_TAXI = 0x3A,
    SPELL_CAST_RESULT_NOT_ON_TRANSPORT = 0x3B,
    SPELL_CAST_RESULT_NOT_READY = 0x3C,
    SPELL_CAST_RESULT_NOT_SHAPESHIFT = 0x3D,
    SPELL_CAST_RESULT_NOT_STANDING = 0x3E,
    SPELL_CAST_RESULT_NOT_TRADEABLE = 0x3F,
    SPELL_CAST_RESULT_NOT_TRADING = 0x40,
    SPELL_CAST_RESULT_NOT_UNSHEATHED = 0x41,
    SPELL_CAST_RESULT_NOT_WHILE_GHOST = 0x42,
    SPELL_CAST_RESULT_NO_AMMO = 0x43,
    SPELL_CAST_RESULT_NO_CHARGES_REMAIN = 0x44,
    SPELL_CAST_RESULT_NO_CHAMPION = 0x45,
    SPELL_CAST_RESULT_NO_COMBO_POINTS = 0x46,
    SPELL_CAST_RESULT_NO_DUELING = 0x47,
    SPELL_CAST_RESULT_NO_ENDURANCE = 0x48,
    SPELL_CAST_RESULT_NO_FISH = 0x49,
    SPELL_CAST_RESULT_NO_ITEMS_WHILE_SHAPESHIFTED = 0x4A,
    SPELL_CAST_RESULT_NO_MOUNTS_ALLOWED = 0x4B,
    SPELL_CAST_RESULT_NO_PET = 0x4C,
    SPELL_CAST_RESULT_NO_POWER = 0x4D,
    SPELL_CAST_RESULT_NOTHING_TO_DISPEL = 0x4E,
    SPELL_CAST_RESULT_NOTHING_TO_STEAL = 0x4F,
    SPELL_CAST_RESULT_ONLY_ABOVEWATER = 0x50,
    SPELL_CAST_RESULT_ONLY_DAYTIME = 0x51,
    SPELL_CAST_RESULT_ONLY_INDOORS = 0x52,
    SPELL_CAST_RESULT_ONLY_MOUNTED = 0x53,
    SPELL_CAST_RESULT_ONLY_NIGHTTIME = 0x54,
    SPELL_CAST_RESULT_ONLY_OUTDOORS = 0x55,
    SPELL_CAST_RESULT_ONLY_SHAPESHIFT = 0x56,
    SPELL_CAST_RESULT_ONLY_STEALTHED = 0x57,
    SPELL_CAST_RESULT_ONLY_UNDERWATER = 0x58,
    SPELL_CAST_RESULT_OUT_OF_RANGE = 0x59,
    SPELL_CAST_RESULT_PACIFIED = 0x5A,
    SPELL_CAST_RESULT_POSSESSED = 0x5B,
    SPELL_CAST_RESULT_REQUIRES_AREA = 0x5D,
    SPELL_CAST_RESULT_REQUIRES_SPELL_FOCUS = 0x5E,
    SPELL_CAST_RESULT_ROOTED = 0x5F,
    SPELL_CAST_RESULT_SILENCED = 0x60,
    SPELL_CAST_RESULT_SPELL_IN_PROGRESS = 0x61,
    SPELL_CAST_RESULT_SPELL_LEARNED = 0x62,
    SPELL_CAST_RESULT_SPELL_UNAVAILABLE = 0x63,
    SPELL_CAST_RESULT_STUNNED = 0x64,
    SPELL_CAST_RESULT_TARGETS_DEAD = 0x65,
    SPELL_CAST_RESULT_TARGET_AFFECTING_COMBAT = 0x66,
    SPELL_CAST_RESULT_TARGET_AURASTATE = 0x67,
    SPELL_CAST_RESULT_TARGET_DUELING = 0x68,
    SPELL_CAST_RESULT_TARGET_ENEMY = 0x69,
    SPELL_CAST_RESULT_TARGET_ENRAGED = 0x6A,
    SPELL_CAST_RESULT_TARGET_FRIENDLY = 0x6B,
    SPELL_CAST_RESULT_TARGET_IN_COMBAT = 0x6C,
    SPELL_CAST_RESULT_TARGET_IS_PLAYER = 0x6D,
    SPELL_CAST_RESULT_TARGET_NOT_DEAD = 0x6E,
    SPELL_CAST_RESULT_TARGET_NOT_IN_PARTY = 0x6F,
    SPELL_CAST_RESULT_TARGET_NOT_LOOTED = 0x70,
    SPELL_CAST_RESULT_TARGET_NOT_PLAYER = 0x71,
    SPELL_CAST_RESULT_TARGET_NO_POCKETS = 0x72,
    SPELL_CAST_RESULT_TARGET_NO_WEAPONS = 0x73,
    SPELL_CAST_RESULT_TARGET_UNSKINNABLE = 0x74,
    SPELL_CAST_RESULT_THIRST_SATIATED = 0x75,
    SPELL_CAST_RESULT_TOO_CLOSE = 0x76,
    SPELL_CAST_RESULT_TOO_MANY_OF_ITEM = 0x77,
    SPELL_CAST_RESULT_TRAINING_POINTS = 0x79,
    SPELL_CAST_RESULT_TRY_AGAIN = 0x7A,
    SPELL_CAST_RESULT_UNIT_NOT_BEHIND = 0x7B,
    SPELL_CAST_RESULT_UNIT_NOT_INFRONT = 0x7C,
    SPELL_CAST_RESULT_WRONG_PET_FOOD = 0x7D,
    SPELL_CAST_RESULT_NOT_WHILE_FATIGUED = 0x7E,
    SPELL_CAST_RESULT_TARGET_NOT_IN_INSTANCE = 0x7F,
    SPELL_CAST_RESULT_NOT_WHILE_TRADING = 0x80,
    SPELL_CAST_RESULT_TARGET_NOT_IN_RAID = 0x81,
    SPELL_CAST_RESULT_DISENCHANT_WHILE_LOOTING = 0x82,
    SPELL_CAST_RESULT_PROSPECT_WHILE_LOOTING = 0x83,
    SPELL_CAST_RESULT_TARGET_FREEFORALL = 0x85,
    SPELL_CAST_RESULT_NO_EDIBLE_CORPSES = 0x86,
    SPELL_CAST_RESULT_ONLY_BATTLEGROUNDS = 0x87,
    SPELL_CAST_RESULT_TARGET_NOT_GHOST = 0x88,
    SPELL_CAST_RESULT_TOO_MANY_SKILLS = 0x89,
    SPELL_CAST_RESULT_CANT_USE_NEW_ITEM = 0x8A,
    SPELL_CAST_RESULT_WRONG_WEATHER = 0x8B,
    SPELL_CAST_RESULT_DAMAGE_IMMUNE = 0x8C,
    SPELL_CAST_RESULT_PREVENTED_BY_MECHANIC = 0x8D,
    SPELL_CAST_RESULT_PLAY_TIME = 0x8E,
    SPELL_CAST_RESULT_REPUTATION = 0x8F,
    SPELL_CAST_RESULT_MIN_SKILL = 0x90,
    SPELL_CAST_RESULT_UNKNOWN = 0x91,
} e_spell_cast_result;
static const value_string e_spell_cast_result_strings[] =  {
    { SPELL_CAST_RESULT_AFFECTING_COMBAT, "Affecting Combat" },
    { SPELL_CAST_RESULT_ALREADY_AT_FULL_HEALTH, "Already At Full Health" },
    { SPELL_CAST_RESULT_ALREADY_AT_FULL_MANA, "Already At Full Mana" },
    { SPELL_CAST_RESULT_ALREADY_BEING_TAMED, "Already Being Tamed" },
    { SPELL_CAST_RESULT_ALREADY_HAVE_CHARM, "Already Have Charm" },
    { SPELL_CAST_RESULT_ALREADY_HAVE_SUMMON, "Already Have Summon" },
    { SPELL_CAST_RESULT_ALREADY_OPEN, "Already Open" },
    { SPELL_CAST_RESULT_MORE_POWERFUL_SPELL_ACTIVE, "More Powerful Spell Active" },
    { SPELL_CAST_RESULT_BAD_IMPLICIT_TARGETS, "Bad Implicit Targets" },
    { SPELL_CAST_RESULT_BAD_TARGETS, "Bad Targets" },
    { SPELL_CAST_RESULT_CANT_BE_CHARMED, "Cant Be Charmed" },
    { SPELL_CAST_RESULT_CANT_BE_DISENCHANTED, "Cant Be Disenchanted" },
    { SPELL_CAST_RESULT_CANT_BE_PROSPECTED, "Cant Be Prospected" },
    { SPELL_CAST_RESULT_CANT_CAST_ON_TAPPED, "Cant Cast On Tapped" },
    { SPELL_CAST_RESULT_CANT_DUEL_WHILE_INVISIBLE, "Cant Duel While Invisible" },
    { SPELL_CAST_RESULT_CANT_DUEL_WHILE_STEALTHED, "Cant Duel While Stealthed" },
    { SPELL_CAST_RESULT_CANT_TOO_CLOSE_TO_ENEMY, "Cant Too Close To Enemy" },
    { SPELL_CAST_RESULT_CANT_DO_THAT_YET, "Cant Do That Yet" },
    { SPELL_CAST_RESULT_CASTER_DEAD, "Caster Dead" },
    { SPELL_CAST_RESULT_CHARMED, "Charmed" },
    { SPELL_CAST_RESULT_CHEST_IN_USE, "Chest In Use" },
    { SPELL_CAST_RESULT_CONFUSED, "Confused" },
    { SPELL_CAST_RESULT_DONT_REPORT, "Dont Report" },
    { SPELL_CAST_RESULT_EQUIPPED_ITEM, "Equipped Item" },
    { SPELL_CAST_RESULT_EQUIPPED_ITEM_CLASS, "Equipped Item Class" },
    { SPELL_CAST_RESULT_EQUIPPED_ITEM_CLASS_MAINHAND, "Equipped Item Class Mainhand" },
    { SPELL_CAST_RESULT_EQUIPPED_ITEM_CLASS_OFFHAND, "Equipped Item Class Offhand" },
    { SPELL_CAST_RESULT_ERROR, "Error" },
    { SPELL_CAST_RESULT_FIZZLE, "Fizzle" },
    { SPELL_CAST_RESULT_FLEEING, "Fleeing" },
    { SPELL_CAST_RESULT_FOOD_LOWLEVEL, "Food Lowlevel" },
    { SPELL_CAST_RESULT_HIGHLEVEL, "Highlevel" },
    { SPELL_CAST_RESULT_IMMUNE, "Immune" },
    { SPELL_CAST_RESULT_INTERRUPTED, "Interrupted" },
    { SPELL_CAST_RESULT_INTERRUPTED_COMBAT, "Interrupted Combat" },
    { SPELL_CAST_RESULT_ITEM_ALREADY_ENCHANTED, "Item Already Enchanted" },
    { SPELL_CAST_RESULT_ITEM_GONE, "Item Gone" },
    { SPELL_CAST_RESULT_ENCHANT_NOT_EXISTING_ITEM, "Enchant Not Existing Item" },
    { SPELL_CAST_RESULT_ITEM_NOT_READY, "Item Not Ready" },
    { SPELL_CAST_RESULT_LEVEL_REQUIREMENT, "Level Requirement" },
    { SPELL_CAST_RESULT_LINE_OF_SIGHT, "Line Of Sight" },
    { SPELL_CAST_RESULT_LOWLEVEL, "Lowlevel" },
    { SPELL_CAST_RESULT_SKILL_NOT_HIGH_ENOUGH, "Skill Not High Enough" },
    { SPELL_CAST_RESULT_MAINHAND_EMPTY, "Mainhand Empty" },
    { SPELL_CAST_RESULT_MOVING, "Moving" },
    { SPELL_CAST_RESULT_NEED_AMMO, "Need Ammo" },
    { SPELL_CAST_RESULT_NEED_REQUIRES_SOMETHING, "Need Requires Something" },
    { SPELL_CAST_RESULT_NEED_EXOTIC_AMMO, "Need Exotic Ammo" },
    { SPELL_CAST_RESULT_NOPATH, "Nopath" },
    { SPELL_CAST_RESULT_NOT_BEHIND, "Not Behind" },
    { SPELL_CAST_RESULT_NOT_FISHABLE, "Not Fishable" },
    { SPELL_CAST_RESULT_NOT_HERE, "Not Here" },
    { SPELL_CAST_RESULT_NOT_INFRONT, "Not Infront" },
    { SPELL_CAST_RESULT_NOT_IN_CONTROL, "Not In Control" },
    { SPELL_CAST_RESULT_NOT_KNOWN, "Not Known" },
    { SPELL_CAST_RESULT_NOT_MOUNTED, "Not Mounted" },
    { SPELL_CAST_RESULT_NOT_ON_TAXI, "Not On Taxi" },
    { SPELL_CAST_RESULT_NOT_ON_TRANSPORT, "Not On Transport" },
    { SPELL_CAST_RESULT_NOT_READY, "Not Ready" },
    { SPELL_CAST_RESULT_NOT_SHAPESHIFT, "Not Shapeshift" },
    { SPELL_CAST_RESULT_NOT_STANDING, "Not Standing" },
    { SPELL_CAST_RESULT_NOT_TRADEABLE, "Not Tradeable" },
    { SPELL_CAST_RESULT_NOT_TRADING, "Not Trading" },
    { SPELL_CAST_RESULT_NOT_UNSHEATHED, "Not Unsheathed" },
    { SPELL_CAST_RESULT_NOT_WHILE_GHOST, "Not While Ghost" },
    { SPELL_CAST_RESULT_NO_AMMO, "No Ammo" },
    { SPELL_CAST_RESULT_NO_CHARGES_REMAIN, "No Charges Remain" },
    { SPELL_CAST_RESULT_NO_CHAMPION, "No Champion" },
    { SPELL_CAST_RESULT_NO_COMBO_POINTS, "No Combo Points" },
    { SPELL_CAST_RESULT_NO_DUELING, "No Dueling" },
    { SPELL_CAST_RESULT_NO_ENDURANCE, "No Endurance" },
    { SPELL_CAST_RESULT_NO_FISH, "No Fish" },
    { SPELL_CAST_RESULT_NO_ITEMS_WHILE_SHAPESHIFTED, "No Items While Shapeshifted" },
    { SPELL_CAST_RESULT_NO_MOUNTS_ALLOWED, "No Mounts Allowed" },
    { SPELL_CAST_RESULT_NO_PET, "No Pet" },
    { SPELL_CAST_RESULT_NO_POWER, "No Power" },
    { SPELL_CAST_RESULT_NOTHING_TO_DISPEL, "Nothing To Dispel" },
    { SPELL_CAST_RESULT_NOTHING_TO_STEAL, "Nothing To Steal" },
    { SPELL_CAST_RESULT_ONLY_ABOVEWATER, "Only Abovewater" },
    { SPELL_CAST_RESULT_ONLY_DAYTIME, "Only Daytime" },
    { SPELL_CAST_RESULT_ONLY_INDOORS, "Only Indoors" },
    { SPELL_CAST_RESULT_ONLY_MOUNTED, "Only Mounted" },
    { SPELL_CAST_RESULT_ONLY_NIGHTTIME, "Only Nighttime" },
    { SPELL_CAST_RESULT_ONLY_OUTDOORS, "Only Outdoors" },
    { SPELL_CAST_RESULT_ONLY_SHAPESHIFT, "Only Shapeshift" },
    { SPELL_CAST_RESULT_ONLY_STEALTHED, "Only Stealthed" },
    { SPELL_CAST_RESULT_ONLY_UNDERWATER, "Only Underwater" },
    { SPELL_CAST_RESULT_OUT_OF_RANGE, "Out Of Range" },
    { SPELL_CAST_RESULT_PACIFIED, "Pacified" },
    { SPELL_CAST_RESULT_POSSESSED, "Possessed" },
    { SPELL_CAST_RESULT_REQUIRES_AREA, "Requires Area" },
    { SPELL_CAST_RESULT_REQUIRES_SPELL_FOCUS, "Requires Spell Focus" },
    { SPELL_CAST_RESULT_ROOTED, "Rooted" },
    { SPELL_CAST_RESULT_SILENCED, "Silenced" },
    { SPELL_CAST_RESULT_SPELL_IN_PROGRESS, "Spell In Progress" },
    { SPELL_CAST_RESULT_SPELL_LEARNED, "Spell Learned" },
    { SPELL_CAST_RESULT_SPELL_UNAVAILABLE, "Spell Unavailable" },
    { SPELL_CAST_RESULT_STUNNED, "Stunned" },
    { SPELL_CAST_RESULT_TARGETS_DEAD, "Targets Dead" },
    { SPELL_CAST_RESULT_TARGET_AFFECTING_COMBAT, "Target Affecting Combat" },
    { SPELL_CAST_RESULT_TARGET_AURASTATE, "Target Aurastate" },
    { SPELL_CAST_RESULT_TARGET_DUELING, "Target Dueling" },
    { SPELL_CAST_RESULT_TARGET_ENEMY, "Target Enemy" },
    { SPELL_CAST_RESULT_TARGET_ENRAGED, "Target Enraged" },
    { SPELL_CAST_RESULT_TARGET_FRIENDLY, "Target Friendly" },
    { SPELL_CAST_RESULT_TARGET_IN_COMBAT, "Target In Combat" },
    { SPELL_CAST_RESULT_TARGET_IS_PLAYER, "Target Is Player" },
    { SPELL_CAST_RESULT_TARGET_NOT_DEAD, "Target Not Dead" },
    { SPELL_CAST_RESULT_TARGET_NOT_IN_PARTY, "Target Not In Party" },
    { SPELL_CAST_RESULT_TARGET_NOT_LOOTED, "Target Not Looted" },
    { SPELL_CAST_RESULT_TARGET_NOT_PLAYER, "Target Not Player" },
    { SPELL_CAST_RESULT_TARGET_NO_POCKETS, "Target No Pockets" },
    { SPELL_CAST_RESULT_TARGET_NO_WEAPONS, "Target No Weapons" },
    { SPELL_CAST_RESULT_TARGET_UNSKINNABLE, "Target Unskinnable" },
    { SPELL_CAST_RESULT_THIRST_SATIATED, "Thirst Satiated" },
    { SPELL_CAST_RESULT_TOO_CLOSE, "Too Close" },
    { SPELL_CAST_RESULT_TOO_MANY_OF_ITEM, "Too Many Of Item" },
    { SPELL_CAST_RESULT_TRAINING_POINTS, "Training Points" },
    { SPELL_CAST_RESULT_TRY_AGAIN, "Try Again" },
    { SPELL_CAST_RESULT_UNIT_NOT_BEHIND, "Unit Not Behind" },
    { SPELL_CAST_RESULT_UNIT_NOT_INFRONT, "Unit Not Infront" },
    { SPELL_CAST_RESULT_WRONG_PET_FOOD, "Wrong Pet Food" },
    { SPELL_CAST_RESULT_NOT_WHILE_FATIGUED, "Not While Fatigued" },
    { SPELL_CAST_RESULT_TARGET_NOT_IN_INSTANCE, "Target Not In Instance" },
    { SPELL_CAST_RESULT_NOT_WHILE_TRADING, "Not While Trading" },
    { SPELL_CAST_RESULT_TARGET_NOT_IN_RAID, "Target Not In Raid" },
    { SPELL_CAST_RESULT_DISENCHANT_WHILE_LOOTING, "Disenchant While Looting" },
    { SPELL_CAST_RESULT_PROSPECT_WHILE_LOOTING, "Prospect While Looting" },
    { SPELL_CAST_RESULT_TARGET_FREEFORALL, "Target Freeforall" },
    { SPELL_CAST_RESULT_NO_EDIBLE_CORPSES, "No Edible Corpses" },
    { SPELL_CAST_RESULT_ONLY_BATTLEGROUNDS, "Only Battlegrounds" },
    { SPELL_CAST_RESULT_TARGET_NOT_GHOST, "Target Not Ghost" },
    { SPELL_CAST_RESULT_TOO_MANY_SKILLS, "Too Many Skills" },
    { SPELL_CAST_RESULT_CANT_USE_NEW_ITEM, "Cant Use New Item" },
    { SPELL_CAST_RESULT_WRONG_WEATHER, "Wrong Weather" },
    { SPELL_CAST_RESULT_DAMAGE_IMMUNE, "Damage Immune" },
    { SPELL_CAST_RESULT_PREVENTED_BY_MECHANIC, "Prevented By Mechanic" },
    { SPELL_CAST_RESULT_PLAY_TIME, "Play Time" },
    { SPELL_CAST_RESULT_REPUTATION, "Reputation" },
    { SPELL_CAST_RESULT_MIN_SKILL, "Min Skill" },
    { SPELL_CAST_RESULT_UNKNOWN, "Unknown" },
    { 0, NULL }
};

typedef enum {
    PET_REACT_STATE_PASSIVE = 0x0,
    PET_REACT_STATE_DEFENSIVE = 0x1,
    PET_REACT_STATE_AGGRESSIVE = 0x2,
} e_pet_react_state;
static const value_string e_pet_react_state_strings[] =  {
    { PET_REACT_STATE_PASSIVE, "Passive" },
    { PET_REACT_STATE_DEFENSIVE, "Defensive" },
    { PET_REACT_STATE_AGGRESSIVE, "Aggressive" },
    { 0, NULL }
};

typedef enum {
    PET_COMMAND_STATE_STAY = 0x0,
    PET_COMMAND_STATE_FOLLOW = 0x1,
    PET_COMMAND_STATE_ATTACK = 0x2,
    PET_COMMAND_STATE_DISMISS = 0x3,
} e_pet_command_state;
static const value_string e_pet_command_state_strings[] =  {
    { PET_COMMAND_STATE_STAY, "Stay" },
    { PET_COMMAND_STATE_FOLLOW, "Follow" },
    { PET_COMMAND_STATE_ATTACK, "Attack" },
    { PET_COMMAND_STATE_DISMISS, "Dismiss" },
    { 0, NULL }
};

typedef enum {
    PET_ENABLED_ENABLED = 0x8,
    PET_ENABLED_DISABLED = 0x0,
} e_pet_enabled;
static const value_string e_pet_enabled_strings[] =  {
    { PET_ENABLED_ENABLED, "Enabled" },
    { PET_ENABLED_DISABLED, "Disabled" },
    { 0, NULL }
};

typedef enum {
    PET_TAME_FAILURE_REASON_INVALIDCREATURE = 0x1,
    PET_TAME_FAILURE_REASON_TOOMANY = 0x2,
    PET_TAME_FAILURE_REASON_CREATUREALREADYOWNED = 0x3,
    PET_TAME_FAILURE_REASON_NOTTAMEABLE = 0x4,
    PET_TAME_FAILURE_REASON_ANOTHERSUMMONACTIVE = 0x5,
    PET_TAME_FAILURE_REASON_UNITSCANTTAME = 0x6,
    PET_TAME_FAILURE_REASON_NOPETAVAILABLE = 0x7,
    PET_TAME_FAILURE_REASON_INTERNALERROR = 0x8,
    PET_TAME_FAILURE_REASON_TOOHIGHLEVEL = 0x9,
    PET_TAME_FAILURE_REASON_DEAD = 0xA,
    PET_TAME_FAILURE_REASON_NOTDEAD = 0xB,
    PET_TAME_FAILURE_REASON_UNKNOWNERROR = 0xC,
} e_pet_tame_failure_reason;
static const value_string e_pet_tame_failure_reason_strings[] =  {
    { PET_TAME_FAILURE_REASON_INVALIDCREATURE, "Invalidcreature" },
    { PET_TAME_FAILURE_REASON_TOOMANY, "Toomany" },
    { PET_TAME_FAILURE_REASON_CREATUREALREADYOWNED, "Creaturealreadyowned" },
    { PET_TAME_FAILURE_REASON_NOTTAMEABLE, "Nottameable" },
    { PET_TAME_FAILURE_REASON_ANOTHERSUMMONACTIVE, "Anothersummonactive" },
    { PET_TAME_FAILURE_REASON_UNITSCANTTAME, "Unitscanttame" },
    { PET_TAME_FAILURE_REASON_NOPETAVAILABLE, "Nopetavailable" },
    { PET_TAME_FAILURE_REASON_INTERNALERROR, "Internalerror" },
    { PET_TAME_FAILURE_REASON_TOOHIGHLEVEL, "Toohighlevel" },
    { PET_TAME_FAILURE_REASON_DEAD, "Dead" },
    { PET_TAME_FAILURE_REASON_NOTDEAD, "Notdead" },
    { PET_TAME_FAILURE_REASON_UNKNOWNERROR, "Unknownerror" },
    { 0, NULL }
};

typedef enum {
    LOG_FORMAT_DEFAULT = 0x0,
    LOG_FORMAT_DEBUG = 0x1,
} e_log_format;
static const value_string e_log_format_strings[] =  {
    { LOG_FORMAT_DEFAULT, "Default" },
    { LOG_FORMAT_DEBUG, "Debug" },
    { 0, NULL }
};

typedef enum {
    QUEST_FAILED_REASON_DONT_HAVE_REQ = 0x00,
    QUEST_FAILED_REASON_QUEST_FAILED_LOW_LEVEL = 0x01,
    QUEST_FAILED_REASON_QUEST_FAILED_REQS = 0x02,
    QUEST_FAILED_REASON_QUEST_FAILED_INVENTORY_FULL = 0x04,
    QUEST_FAILED_REASON_QUEST_FAILED_WRONG_RACE = 0x06,
    QUEST_FAILED_REASON_QUEST_ONLY_ONE_TIMED = 0x0C,
    QUEST_FAILED_REASON_QUEST_ALREADY_ON = 0x0D,
    QUEST_FAILED_REASON_QUEST_FAILED_DUPLICATE_ITEM = 0x11,
    QUEST_FAILED_REASON_QUEST_FAILED_MISSING_ITEMS = 0x14,
    QUEST_FAILED_REASON_QUEST_FAILED_NOT_ENOUGH_MONEY = 0x16,
} e_quest_failed_reason;
static const value_string e_quest_failed_reason_strings[] =  {
    { QUEST_FAILED_REASON_DONT_HAVE_REQ, "Dont Have Req" },
    { QUEST_FAILED_REASON_QUEST_FAILED_LOW_LEVEL, "Quest Failed Low Level" },
    { QUEST_FAILED_REASON_QUEST_FAILED_REQS, "Quest Failed Reqs" },
    { QUEST_FAILED_REASON_QUEST_FAILED_INVENTORY_FULL, "Quest Failed Inventory Full" },
    { QUEST_FAILED_REASON_QUEST_FAILED_WRONG_RACE, "Quest Failed Wrong Race" },
    { QUEST_FAILED_REASON_QUEST_ONLY_ONE_TIMED, "Quest Only One Timed" },
    { QUEST_FAILED_REASON_QUEST_ALREADY_ON, "Quest Already On" },
    { QUEST_FAILED_REASON_QUEST_FAILED_DUPLICATE_ITEM, "Quest Failed Duplicate Item" },
    { QUEST_FAILED_REASON_QUEST_FAILED_MISSING_ITEMS, "Quest Failed Missing Items" },
    { QUEST_FAILED_REASON_QUEST_FAILED_NOT_ENOUGH_MONEY, "Quest Failed Not Enough Money" },
    { 0, NULL }
};

typedef enum {
    QUEST_COMPLETABLE_NOT_COMPLETABLE = 0x0,
    QUEST_COMPLETABLE_COMPLETEABLE = 0x3,
} e_quest_completable;
static const value_string e_quest_completable_strings[] =  {
    { QUEST_COMPLETABLE_NOT_COMPLETABLE, "Not Completable" },
    { QUEST_COMPLETABLE_COMPLETEABLE, "Completeable" },
    { 0, NULL }
};

typedef enum {
    QUEST_GIVER_STATUS_NONE = 0x0,
    QUEST_GIVER_STATUS_UNAVAILABLE = 0x1,
    QUEST_GIVER_STATUS_CHAT = 0x2,
    QUEST_GIVER_STATUS_INCOMPLETE = 0x3,
    QUEST_GIVER_STATUS_REWARD_REP = 0x4,
    QUEST_GIVER_STATUS_AVAILABLE = 0x5,
    QUEST_GIVER_STATUS_REWARD_OLD = 0x6,
    QUEST_GIVER_STATUS_REWARD2 = 0x7,
} e_quest_giver_status;
static const value_string e_quest_giver_status_strings[] =  {
    { QUEST_GIVER_STATUS_NONE, "None" },
    { QUEST_GIVER_STATUS_UNAVAILABLE, "Unavailable" },
    { QUEST_GIVER_STATUS_CHAT, "Chat" },
    { QUEST_GIVER_STATUS_INCOMPLETE, "Incomplete" },
    { QUEST_GIVER_STATUS_REWARD_REP, "Reward Rep" },
    { QUEST_GIVER_STATUS_AVAILABLE, "Available" },
    { QUEST_GIVER_STATUS_REWARD_OLD, "Reward Old" },
    { QUEST_GIVER_STATUS_REWARD2, "Reward2" },
    { 0, NULL }
};

typedef enum {
    RAID_GROUP_ERROR_REQUIRED = 0x1,
    RAID_GROUP_ERROR_FULL = 0x2,
} e_raid_group_error;
static const value_string e_raid_group_error_strings[] =  {
    { RAID_GROUP_ERROR_REQUIRED, "Required" },
    { RAID_GROUP_ERROR_FULL, "Full" },
    { 0, NULL }
};

typedef enum {
    RAID_INSTANCE_MESSAGE_WARNING_HOURS = 0x1,
    RAID_INSTANCE_MESSAGE_WARNING_MIN = 0x2,
    RAID_INSTANCE_MESSAGE_WARNING_MIN_SOON = 0x3,
    RAID_INSTANCE_MESSAGE_WELCOME = 0x4,
} e_raid_instance_message;
static const value_string e_raid_instance_message_strings[] =  {
    { RAID_INSTANCE_MESSAGE_WARNING_HOURS, "Warning Hours" },
    { RAID_INSTANCE_MESSAGE_WARNING_MIN, "Warning Min" },
    { RAID_INSTANCE_MESSAGE_WARNING_MIN_SOON, "Warning Min Soon" },
    { RAID_INSTANCE_MESSAGE_WELCOME, "Welcome" },
    { 0, NULL }
};

typedef enum {
    SELL_ITEM_RESULT_CANT_FIND_ITEM = 0x1,
    SELL_ITEM_RESULT_CANT_SELL_ITEM = 0x2,
    SELL_ITEM_RESULT_CANT_FIND_VENDOR = 0x3,
    SELL_ITEM_RESULT_YOU_DONT_OWN_THAT_ITEM = 0x4,
    SELL_ITEM_RESULT_UNK = 0x5,
    SELL_ITEM_RESULT_ONLY_EMPTY_BAG = 0x6,
} e_sell_item_result;
static const value_string e_sell_item_result_strings[] =  {
    { SELL_ITEM_RESULT_CANT_FIND_ITEM, "Cant Find Item" },
    { SELL_ITEM_RESULT_CANT_SELL_ITEM, "Cant Sell Item" },
    { SELL_ITEM_RESULT_CANT_FIND_VENDOR, "Cant Find Vendor" },
    { SELL_ITEM_RESULT_YOU_DONT_OWN_THAT_ITEM, "You Dont Own That Item" },
    { SELL_ITEM_RESULT_UNK, "Unk" },
    { SELL_ITEM_RESULT_ONLY_EMPTY_BAG, "Only Empty Bag" },
    { 0, NULL }
};

typedef enum {
    SERVER_MESSAGE_TYPE_SHUTDOWN_TIME = 0x1,
    SERVER_MESSAGE_TYPE_RESTART_TIME = 0x2,
    SERVER_MESSAGE_TYPE_CUSTOM = 0x3,
    SERVER_MESSAGE_TYPE_SHUTDOWN_CANCELLED = 0x4,
    SERVER_MESSAGE_TYPE_RESTART_CANCELLED = 0x5,
} e_server_message_type;
static const value_string e_server_message_type_strings[] =  {
    { SERVER_MESSAGE_TYPE_SHUTDOWN_TIME, "Shutdown Time" },
    { SERVER_MESSAGE_TYPE_RESTART_TIME, "Restart Time" },
    { SERVER_MESSAGE_TYPE_CUSTOM, "Custom" },
    { SERVER_MESSAGE_TYPE_SHUTDOWN_CANCELLED, "Shutdown Cancelled" },
    { SERVER_MESSAGE_TYPE_RESTART_CANCELLED, "Restart Cancelled" },
    { 0, NULL }
};

typedef enum {
    POWER_TYPE_MANA = 0x00000000,
    POWER_TYPE_RAGE = 0x00000001,
    POWER_TYPE_FOCUS = 0x00000002,
    POWER_TYPE_ENERGY = 0x00000003,
    POWER_TYPE_HAPPINESS = 0x00000004,
    POWER_TYPE_HEALTH = -0x0000002,
} e_power_type;
static const value_string e_power_type_strings[] =  {
    { POWER_TYPE_MANA, "Mana" },
    { POWER_TYPE_RAGE, "Rage" },
    { POWER_TYPE_FOCUS, "Focus" },
    { POWER_TYPE_ENERGY, "Energy" },
    { POWER_TYPE_HAPPINESS, "Happiness" },
    { POWER_TYPE_HEALTH, "Health" },
    { 0, NULL }
};

typedef enum {
    STABLE_RESULT_ERR_MONEY = 0x1,
    STABLE_RESULT_ERR_STABLE = 0x6,
    STABLE_RESULT_SUCCESS_STABLE = 0x8,
    STABLE_RESULT_SUCCESS_UNSTABLE = 0x9,
    STABLE_RESULT_SUCCESS_BUY_SLOT = 0xA,
} e_stable_result;
static const value_string e_stable_result_strings[] =  {
    { STABLE_RESULT_ERR_MONEY, "Err Money" },
    { STABLE_RESULT_ERR_STABLE, "Err Stable" },
    { STABLE_RESULT_SUCCESS_STABLE, "Success Stable" },
    { STABLE_RESULT_SUCCESS_UNSTABLE, "Success Unstable" },
    { STABLE_RESULT_SUCCESS_BUY_SLOT, "Success Buy Slot" },
    { 0, NULL }
};

typedef enum {
    TRADE_STATUS_BUSY = 0x00,
    TRADE_STATUS_BEGIN_TRADE = 0x01,
    TRADE_STATUS_OPEN_WINDOW = 0x02,
    TRADE_STATUS_TRADE_CANCELED = 0x03,
    TRADE_STATUS_TRADE_ACCEPT = 0x04,
    TRADE_STATUS_BUSY_2 = 0x05,
    TRADE_STATUS_NO_TARGET = 0x06,
    TRADE_STATUS_BACK_TO_TRADE = 0x07,
    TRADE_STATUS_TRADE_COMPLETE = 0x08,
    TRADE_STATUS_TRADE_REJECTED = 0x09,
    TRADE_STATUS_TARGET_TO_FAR = 0x0A,
    TRADE_STATUS_WRONG_FACTION = 0x0B,
    TRADE_STATUS_CLOSE_WINDOW = 0x0C,
    TRADE_STATUS_UNKNOWN_13 = 0x0D,
    TRADE_STATUS_IGNORE_YOU = 0x0E,
    TRADE_STATUS_YOU_STUNNED = 0x0F,
    TRADE_STATUS_TARGET_STUNNED = 0x10,
    TRADE_STATUS_YOU_DEAD = 0x11,
    TRADE_STATUS_TARGET_DEAD = 0x12,
    TRADE_STATUS_YOU_LOGOUT = 0x13,
    TRADE_STATUS_TARGET_LOGOUT = 0x14,
    TRADE_STATUS_TRIAL_ACCOUNT = 0x15,
    TRADE_STATUS_ONLY_CONJURED = 0x16,
    TRADE_STATUS_NOT_ON_TAPLIST = 0x17,
} e_trade_status;
static const value_string e_trade_status_strings[] =  {
    { TRADE_STATUS_BUSY, "Busy" },
    { TRADE_STATUS_BEGIN_TRADE, "Begin Trade" },
    { TRADE_STATUS_OPEN_WINDOW, "Open Window" },
    { TRADE_STATUS_TRADE_CANCELED, "Trade Canceled" },
    { TRADE_STATUS_TRADE_ACCEPT, "Trade Accept" },
    { TRADE_STATUS_BUSY_2, "Busy 2" },
    { TRADE_STATUS_NO_TARGET, "No Target" },
    { TRADE_STATUS_BACK_TO_TRADE, "Back To Trade" },
    { TRADE_STATUS_TRADE_COMPLETE, "Trade Complete" },
    { TRADE_STATUS_TRADE_REJECTED, "Trade Rejected" },
    { TRADE_STATUS_TARGET_TO_FAR, "Target To Far" },
    { TRADE_STATUS_WRONG_FACTION, "Wrong Faction" },
    { TRADE_STATUS_CLOSE_WINDOW, "Close Window" },
    { TRADE_STATUS_UNKNOWN_13, "Unknown 13" },
    { TRADE_STATUS_IGNORE_YOU, "Ignore You" },
    { TRADE_STATUS_YOU_STUNNED, "You Stunned" },
    { TRADE_STATUS_TARGET_STUNNED, "Target Stunned" },
    { TRADE_STATUS_YOU_DEAD, "You Dead" },
    { TRADE_STATUS_TARGET_DEAD, "Target Dead" },
    { TRADE_STATUS_YOU_LOGOUT, "You Logout" },
    { TRADE_STATUS_TARGET_LOGOUT, "Target Logout" },
    { TRADE_STATUS_TRIAL_ACCOUNT, "Trial Account" },
    { TRADE_STATUS_ONLY_CONJURED, "Only Conjured" },
    { TRADE_STATUS_NOT_ON_TAPLIST, "Not On Taplist" },
    { 0, NULL }
};

typedef enum {
    TRAINING_FAILURE_REASON_UNAVAILABLE = 0x0,
    TRAINING_FAILURE_REASON_NOT_ENOUGH_MONEY = 0x1,
    TRAINING_FAILURE_REASON_NOT_ENOUGH_SKILL = 0x2,
} e_training_failure_reason;
static const value_string e_training_failure_reason_strings[] =  {
    { TRAINING_FAILURE_REASON_UNAVAILABLE, "Unavailable" },
    { TRAINING_FAILURE_REASON_NOT_ENOUGH_MONEY, "Not Enough Money" },
    { TRAINING_FAILURE_REASON_NOT_ENOUGH_SKILL, "Not Enough Skill" },
    { 0, NULL }
};

typedef enum {
    TRANSFER_ABORT_REASON_NONE = 0x0,
    TRANSFER_ABORT_REASON_IS_FULL = 0x1,
    TRANSFER_ABORT_REASON_NOT_FOUND = 0x2,
    TRANSFER_ABORT_REASON_TOO_MANY_INSTANCES = 0x3,
    TRANSFER_ABORT_REASON_ZONE_IS_IN_COMBAT = 0x5,
} e_transfer_abort_reason;
static const value_string e_transfer_abort_reason_strings[] =  {
    { TRANSFER_ABORT_REASON_NONE, "None" },
    { TRANSFER_ABORT_REASON_IS_FULL, "Is Full" },
    { TRANSFER_ABORT_REASON_NOT_FOUND, "Not Found" },
    { TRANSFER_ABORT_REASON_TOO_MANY_INSTANCES, "Too Many Instances" },
    { TRANSFER_ABORT_REASON_ZONE_IS_IN_COMBAT, "Zone Is In Combat" },
    { 0, NULL }
};

typedef enum {
    CINEMATIC_SEQUENCE_ID_GOBLIN = 0x00,
    CINEMATIC_SEQUENCE_ID_UNDEAD = 0x02,
    CINEMATIC_SEQUENCE_ID_ORC = 0x15,
    CINEMATIC_SEQUENCE_ID_DWARF = 0x29,
    CINEMATIC_SEQUENCE_ID_NIGHT_ELF = 0x3D,
    CINEMATIC_SEQUENCE_ID_HUMAN = 0x51,
    CINEMATIC_SEQUENCE_ID_GNOME = 0x65,
    CINEMATIC_SEQUENCE_ID_TROLL = 0x79,
    CINEMATIC_SEQUENCE_ID_TAUREN = 0x8D,
} e_cinematic_sequence_id;
static const value_string e_cinematic_sequence_id_strings[] =  {
    { CINEMATIC_SEQUENCE_ID_GOBLIN, "Goblin" },
    { CINEMATIC_SEQUENCE_ID_UNDEAD, "Undead" },
    { CINEMATIC_SEQUENCE_ID_ORC, "Orc" },
    { CINEMATIC_SEQUENCE_ID_DWARF, "Dwarf" },
    { CINEMATIC_SEQUENCE_ID_NIGHT_ELF, "Night Elf" },
    { CINEMATIC_SEQUENCE_ID_HUMAN, "Human" },
    { CINEMATIC_SEQUENCE_ID_GNOME, "Gnome" },
    { CINEMATIC_SEQUENCE_ID_TROLL, "Troll" },
    { CINEMATIC_SEQUENCE_ID_TAUREN, "Tauren" },
    { 0, NULL }
};

typedef enum {
    WEATHER_TYPE_FINE = 0x0,
    WEATHER_TYPE_RAIN = 0x1,
    WEATHER_TYPE_SNOW = 0x2,
    WEATHER_TYPE_STORM = 0x3,
} e_weather_type;
static const value_string e_weather_type_strings[] =  {
    { WEATHER_TYPE_FINE, "Fine" },
    { WEATHER_TYPE_RAIN, "Rain" },
    { WEATHER_TYPE_SNOW, "Snow" },
    { WEATHER_TYPE_STORM, "Storm" },
    { 0, NULL }
};

typedef enum {
    WEATHER_CHANGE_TYPE_SMOOTH = 0x0,
    WEATHER_CHANGE_TYPE_INSTANT = 0x1,
} e_weather_change_type;
static const value_string e_weather_change_type_strings[] =  {
    { WEATHER_CHANGE_TYPE_SMOOTH, "Smooth" },
    { WEATHER_CHANGE_TYPE_INSTANT, "Instant" },
    { 0, NULL }
};


typedef enum {
    CHANNEL_MEMBER_FLAGS_NONE = 0x00,
    CHANNEL_MEMBER_FLAGS_OWNER = 0x01,
    CHANNEL_MEMBER_FLAGS_MODERATOR = 0x04,
    CHANNEL_MEMBER_FLAGS_VOICED = 0x08,
    CHANNEL_MEMBER_FLAGS_MUTED = 0x10,
    CHANNEL_MEMBER_FLAGS_CUSTOM = 0x20,
    CHANNEL_MEMBER_FLAGS_MICROPHONE_MUTE = 0x40,
} e_channel_member_flags;

typedef enum {
    CHARACTER_FLAGS_NONE = 0x0000,
    CHARACTER_FLAGS_LOCKED_FOR_TRANSFER = 0x0004,
    CHARACTER_FLAGS_HIDE_HELM = 0x0400,
    CHARACTER_FLAGS_HIDE_CLOAK = 0x0800,
    CHARACTER_FLAGS_GHOST = 0x2000,
    CHARACTER_FLAGS_RENAME = 0x4000,
} e_character_flags;

typedef enum {
    FACTION_FLAG_VISIBLE = 0x01,
    FACTION_FLAG_AT_WAR = 0x02,
    FACTION_FLAG_HIDDEN = 0x04,
    FACTION_FLAG_INVISIBLE_FORCED = 0x08,
    FACTION_FLAG_PEACE_FORCED = 0x10,
    FACTION_FLAG_INACTIVE = 0x20,
    FACTION_FLAG_RIVAL = 0x40,
} e_faction_flag;

typedef enum {
    UPDATE_FLAG_NONE = 0x00,
    UPDATE_FLAG_SELF = 0x01,
    UPDATE_FLAG_TRANSPORT = 0x02,
    UPDATE_FLAG_MELEE_ATTACKING = 0x04,
    UPDATE_FLAG_HIGH_GUID = 0x08,
    UPDATE_FLAG_ALL = 0x10,
    UPDATE_FLAG_LIVING = 0x20,
    UPDATE_FLAG_HAS_POSITION = 0x40,
} e_update_flag;

typedef enum {
    MOVEMENT_FLAGS_NONE = 0x00000000,
    MOVEMENT_FLAGS_FORWARD = 0x00000001,
    MOVEMENT_FLAGS_BACKWARD = 0x00000002,
    MOVEMENT_FLAGS_STRAFE_LEFT = 0x00000004,
    MOVEMENT_FLAGS_STRAFE_RIGHT = 0x00000008,
    MOVEMENT_FLAGS_TURN_LEFT = 0x00000010,
    MOVEMENT_FLAGS_TURN_RIGHT = 0x00000020,
    MOVEMENT_FLAGS_PITCH_UP = 0x00000040,
    MOVEMENT_FLAGS_PITCH_DOWN = 0x00000080,
    MOVEMENT_FLAGS_WALK_MODE = 0x00000100,
    MOVEMENT_FLAGS_ON_TRANSPORT = 0x00000200,
    MOVEMENT_FLAGS_LEVITATING = 0x00000400,
    MOVEMENT_FLAGS_FIXED_Z = 0x00000800,
    MOVEMENT_FLAGS_ROOT = 0x00001000,
    MOVEMENT_FLAGS_JUMPING = 0x00002000,
    MOVEMENT_FLAGS_FALLINGFAR = 0x00004000,
    MOVEMENT_FLAGS_SWIMMING = 0x00200000,
    MOVEMENT_FLAGS_SPLINE_ENABLED = 0x00400000,
    MOVEMENT_FLAGS_CAN_FLY = 0x00800000,
    MOVEMENT_FLAGS_FLYING = 0x01000000,
    MOVEMENT_FLAGS_ONTRANSPORT = 0x02000000,
    MOVEMENT_FLAGS_SPLINE_ELEVATION = 0x04000000,
    MOVEMENT_FLAGS_WATERWALKING = 0x10000000,
    MOVEMENT_FLAGS_SAFE_FALL = 0x20000000,
    MOVEMENT_FLAGS_HOVER = 0x40000000,
} e_movement_flags;

typedef enum {
    SPLINE_FLAG_NONE = 0x00000000,
    SPLINE_FLAG_DONE = 0x00000001,
    SPLINE_FLAG_FALLING = 0x00000002,
    SPLINE_FLAG_UNKNOWN3 = 0x00000004,
    SPLINE_FLAG_UNKNOWN4 = 0x00000008,
    SPLINE_FLAG_UNKNOWN5 = 0x00000010,
    SPLINE_FLAG_UNKNOWN6 = 0x00000020,
    SPLINE_FLAG_UNKNOWN7 = 0x00000040,
    SPLINE_FLAG_UNKNOWN8 = 0x00000080,
    SPLINE_FLAG_RUNMODE = 0x00000100,
    SPLINE_FLAG_FLYING = 0x00000200,
    SPLINE_FLAG_NO_SPLINE = 0x00000400,
    SPLINE_FLAG_UNKNOWN12 = 0x00000800,
    SPLINE_FLAG_UNKNOWN13 = 0x00001000,
    SPLINE_FLAG_UNKNOWN14 = 0x00002000,
    SPLINE_FLAG_UNKNOWN15 = 0x00004000,
    SPLINE_FLAG_UNKNOWN16 = 0x00008000,
    SPLINE_FLAG_FINAL_POINT = 0x00010000,
    SPLINE_FLAG_FINAL_TARGET = 0x00020000,
    SPLINE_FLAG_FINAL_ANGLE = 0x00040000,
    SPLINE_FLAG_UNKNOWN19 = 0x00080000,
    SPLINE_FLAG_CYCLIC = 0x00100000,
    SPLINE_FLAG_ENTER_CYCLE = 0x00200000,
    SPLINE_FLAG_FROZEN = 0x00400000,
    SPLINE_FLAG_UNKNOWN23 = 0x00800000,
    SPLINE_FLAG_UNKNOWN24 = 0x01000000,
    SPLINE_FLAG_UNKNOWN25 = 0x02000000,
    SPLINE_FLAG_UNKNOWN26 = 0x04000000,
    SPLINE_FLAG_UNKNOWN27 = 0x08000000,
    SPLINE_FLAG_UNKNOWN28 = 0x10000000,
    SPLINE_FLAG_UNKNOWN29 = 0x20000000,
    SPLINE_FLAG_UNKNOWN30 = 0x40000000,
    SPLINE_FLAG_UNKNOWN31 = -0x7FFFFFFF,
} e_spline_flag;

typedef enum {
    SPELL_CAST_TARGET_FLAGS_SELF = 0x0000,
    SPELL_CAST_TARGET_FLAGS_UNUSED1 = 0x0001,
    SPELL_CAST_TARGET_FLAGS_UNIT = 0x0002,
    SPELL_CAST_TARGET_FLAGS_UNIT_RAID = 0x0004,
    SPELL_CAST_TARGET_FLAGS_UNIT_PARTY = 0x0008,
    SPELL_CAST_TARGET_FLAGS_ITEM = 0x0010,
    SPELL_CAST_TARGET_FLAGS_SOURCE_LOCATION = 0x0020,
    SPELL_CAST_TARGET_FLAGS_DEST_LOCATION = 0x0040,
    SPELL_CAST_TARGET_FLAGS_UNIT_ENEMY = 0x0080,
    SPELL_CAST_TARGET_FLAGS_UNIT_ALLY = 0x0100,
    SPELL_CAST_TARGET_FLAGS_CORPSE_ENEMY = 0x0200,
    SPELL_CAST_TARGET_FLAGS_UNIT_DEAD = 0x0400,
    SPELL_CAST_TARGET_FLAGS_GAMEOBJECT = 0x0800,
    SPELL_CAST_TARGET_FLAGS_TRADE_ITEM = 0x1000,
    SPELL_CAST_TARGET_FLAGS_STRING = 0x2000,
    SPELL_CAST_TARGET_FLAGS_LOCKED = 0x4000,
    SPELL_CAST_TARGET_FLAGS_CORPSE_ALLY = 0x8000,
} e_spell_cast_target_flags;

typedef enum {
    CHANNEL_FLAGS_NONE = 0x00,
    CHANNEL_FLAGS_CUSTOM = 0x01,
    CHANNEL_FLAGS_TRADE = 0x04,
    CHANNEL_FLAGS_NOT_LFG = 0x08,
    CHANNEL_FLAGS_GENERAL = 0x10,
    CHANNEL_FLAGS_CITY = 0x20,
    CHANNEL_FLAGS_LFG = 0x40,
    CHANNEL_FLAGS_VOICE = 0x80,
} e_channel_flags;

typedef enum {
    GROUP_UPDATE_FLAGS_FLAG_NONE = 0x00000000,
    GROUP_UPDATE_FLAGS_FLAG_STATUS = 0x00000001,
    GROUP_UPDATE_FLAGS_FLAG_CUR_HP = 0x00000002,
    GROUP_UPDATE_FLAGS_FLAG_MAX_HP = 0x00000004,
    GROUP_UPDATE_FLAGS_FLAG_POWER_TYPE = 0x00000008,
    GROUP_UPDATE_FLAGS_FLAG_CUR_POWER = 0x00000010,
    GROUP_UPDATE_FLAGS_FLAG_MAX_POWER = 0x00000020,
    GROUP_UPDATE_FLAGS_FLAG_LEVEL = 0x00000040,
    GROUP_UPDATE_FLAGS_FLAG_ZONE = 0x00000080,
    GROUP_UPDATE_FLAGS_FLAG_POSITION = 0x00000100,
    GROUP_UPDATE_FLAGS_FLAG_AURAS = 0x00000200,
    GROUP_UPDATE_FLAGS_FLAG_AURAS_2 = 0x00000400,
    GROUP_UPDATE_FLAGS_FLAG_PET_GUID = 0x00000800,
    GROUP_UPDATE_FLAGS_FLAG_PET_NAME = 0x00001000,
    GROUP_UPDATE_FLAGS_FLAG_PET_MODEL_ID = 0x00002000,
    GROUP_UPDATE_FLAGS_FLAG_PET_CUR_HP = 0x00004000,
    GROUP_UPDATE_FLAGS_FLAG_PET_MAX_HP = 0x00008000,
    GROUP_UPDATE_FLAGS_FLAG_PET_POWER_TYPE = 0x00010000,
    GROUP_UPDATE_FLAGS_FLAG_PET_CUR_POWER = 0x00020000,
    GROUP_UPDATE_FLAGS_FLAG_PET_MAX_POWER = 0x00040000,
    GROUP_UPDATE_FLAGS_FLAG_PET_AURAS = 0x00080000,
    GROUP_UPDATE_FLAGS_FLAG_PET_AURAS_2 = 0x00100000,
    GROUP_UPDATE_FLAGS_MODE_OFFLINE = 0x10000000,
} e_group_update_flags;

typedef enum {
    GROUP_MEMBER_ONLINE_STATUS_OFFLINE = 0x00,
    GROUP_MEMBER_ONLINE_STATUS_ONLINE = 0x01,
    GROUP_MEMBER_ONLINE_STATUS_PVP = 0x02,
    GROUP_MEMBER_ONLINE_STATUS_DEAD = 0x04,
    GROUP_MEMBER_ONLINE_STATUS_GHOST = 0x08,
    GROUP_MEMBER_ONLINE_STATUS_PVP_FFA = 0x10,
    GROUP_MEMBER_ONLINE_STATUS_ZONE_OUT = 0x20,
    GROUP_MEMBER_ONLINE_STATUS_AFK = 0x40,
    GROUP_MEMBER_ONLINE_STATUS_DND = 0x80,
} e_group_member_online_status;

typedef enum {
    CAST_FLAGS_NONE = 0x000,
    CAST_FLAGS_HIDDEN_COMBATLOG = 0x001,
    CAST_FLAGS_UNKNOWN2 = 0x002,
    CAST_FLAGS_UNKNOWN3 = 0x004,
    CAST_FLAGS_UNKNOWN4 = 0x008,
    CAST_FLAGS_UNKNOWN5 = 0x010,
    CAST_FLAGS_AMMO = 0x020,
    CAST_FLAGS_UNKNOWN7 = 0x040,
    CAST_FLAGS_UNKNOWN8 = 0x080,
    CAST_FLAGS_UNKNOWN9 = 0x100,
} e_cast_flags;

/* AUTOGENERATED_END_ENUM */

// All existing opcodes for 1.12.x
typedef enum
{
    MSG_NULL_ACTION                                 = 0x000,
    CMSG_BOOTME                                     = 0x001,
    CMSG_DBLOOKUP                                   = 0x002,
    SMSG_DBLOOKUP                                   = 0x003,
    CMSG_QUERY_OBJECT_POSITION                      = 0x004,
    SMSG_QUERY_OBJECT_POSITION                      = 0x005,
    CMSG_QUERY_OBJECT_ROTATION                      = 0x006,
    SMSG_QUERY_OBJECT_ROTATION                      = 0x007,
    CMSG_WORLD_TELEPORT                             = 0x008,
    CMSG_TELEPORT_TO_UNIT                           = 0x009,
    CMSG_ZONE_MAP                                   = 0x00A,
    SMSG_ZONE_MAP                                   = 0x00B,
    CMSG_DEBUG_CHANGECELLZONE                       = 0x00C,
    CMSG_EMBLAZON_TABARD_OBSOLETE                   = 0x00D,
    CMSG_UNEMBLAZON_TABARD_OBSOLETE                 = 0x00E,
    CMSG_RECHARGE                                   = 0x00F,
    CMSG_LEARN_SPELL                                = 0x010,
    CMSG_CREATEMONSTER                              = 0x011,
    CMSG_DESTROYMONSTER                             = 0x012,
    CMSG_CREATEITEM                                 = 0x013,
    CMSG_CREATEGAMEOBJECT                           = 0x014,
    SMSG_CHECK_FOR_BOTS                             = 0x015,
    CMSG_MAKEMONSTERATTACKGUID                      = 0x016,
    CMSG_BOT_DETECTED2                              = 0x017,
    CMSG_FORCEACTION                                = 0x018,
    CMSG_FORCEACTIONONOTHER                         = 0x019,
    CMSG_FORCEACTIONSHOW                            = 0x01A,
    SMSG_FORCEACTIONSHOW                            = 0x01B,
    CMSG_PETGODMODE                                 = 0x01C,
    SMSG_PETGODMODE                                 = 0x01D,
    SMSG_DEBUGINFOSPELLMISS_OBSOLETE                = 0x01E,
    CMSG_WEATHER_SPEED_CHEAT                        = 0x01F,
    CMSG_UNDRESSPLAYER                              = 0x020,
    CMSG_BEASTMASTER                                = 0x021,
    CMSG_GODMODE                                    = 0x022,
    SMSG_GODMODE                                    = 0x023,
    CMSG_CHEAT_SETMONEY                             = 0x024,
    CMSG_LEVEL_CHEAT                                = 0x025,
    CMSG_PET_LEVEL_CHEAT                            = 0x026,
    CMSG_SET_WORLDSTATE                             = 0x027,
    CMSG_COOLDOWN_CHEAT                             = 0x028,
    CMSG_USE_SKILL_CHEAT                            = 0x029,
    CMSG_FLAG_QUEST                                 = 0x02A,
    CMSG_FLAG_QUEST_FINISH                          = 0x02B,
    CMSG_CLEAR_QUEST                                = 0x02C,
    CMSG_SEND_EVENT                                 = 0x02D,
    CMSG_DEBUG_AISTATE                              = 0x02E,
    SMSG_DEBUG_AISTATE                              = 0x02F,
    CMSG_DISABLE_PVP_CHEAT                          = 0x030,
    CMSG_ADVANCE_SPAWN_TIME                         = 0x031,
    CMSG_PVP_PORT_OBSOLETE                          = 0x032,
    CMSG_AUTH_SRP6_BEGIN                            = 0x033,
    CMSG_AUTH_SRP6_PROOF                            = 0x034,
    CMSG_AUTH_SRP6_RECODE                           = 0x035,
    CMSG_CHAR_CREATE                                = 0x036,
    CMSG_CHAR_ENUM                                  = 0x037,
    CMSG_CHAR_DELETE                                = 0x038,
    SMSG_AUTH_SRP6_RESPONSE                         = 0x039,
    SMSG_CHAR_CREATE                                = 0x03A,
    SMSG_CHAR_ENUM                                  = 0x03B,
    SMSG_CHAR_DELETE                                = 0x03C,
    CMSG_PLAYER_LOGIN                               = 0x03D,
    SMSG_NEW_WORLD                                  = 0x03E,
    SMSG_TRANSFER_PENDING                           = 0x03F,
    SMSG_TRANSFER_ABORTED                           = 0x040,
    SMSG_CHARACTER_LOGIN_FAILED                     = 0x041,
    SMSG_LOGIN_SETTIMESPEED                         = 0x042,
    SMSG_GAMETIME_UPDATE                            = 0x043,
    CMSG_GAMETIME_SET                               = 0x044,
    SMSG_GAMETIME_SET                               = 0x045,
    CMSG_GAMESPEED_SET                              = 0x046,
    SMSG_GAMESPEED_SET                              = 0x047,
    CMSG_SERVERTIME                                 = 0x048,
    SMSG_SERVERTIME                                 = 0x049,
    CMSG_PLAYER_LOGOUT                              = 0x04A,
    CMSG_LOGOUT_REQUEST                             = 0x04B,
    SMSG_LOGOUT_RESPONSE                            = 0x04C,
    SMSG_LOGOUT_COMPLETE                            = 0x04D,
    CMSG_LOGOUT_CANCEL                              = 0x04E,
    SMSG_LOGOUT_CANCEL_ACK                          = 0x04F,
    CMSG_NAME_QUERY                                 = 0x050,
    SMSG_NAME_QUERY_RESPONSE                        = 0x051,
    CMSG_PET_NAME_QUERY                             = 0x052,
    SMSG_PET_NAME_QUERY_RESPONSE                    = 0x053,
    CMSG_GUILD_QUERY                                = 0x054,
    SMSG_GUILD_QUERY_RESPONSE                       = 0x055,
    CMSG_ITEM_QUERY_SINGLE                          = 0x056,
    CMSG_ITEM_QUERY_MULTIPLE                        = 0x057,
    SMSG_ITEM_QUERY_SINGLE_RESPONSE                 = 0x058,
    SMSG_ITEM_QUERY_MULTIPLE_RESPONSE               = 0x059,
    CMSG_PAGE_TEXT_QUERY                            = 0x05A,
    SMSG_PAGE_TEXT_QUERY_RESPONSE                   = 0x05B,
    CMSG_QUEST_QUERY                                = 0x05C,
    SMSG_QUEST_QUERY_RESPONSE                       = 0x05D,
    CMSG_GAMEOBJECT_QUERY                           = 0x05E,
    SMSG_GAMEOBJECT_QUERY_RESPONSE                  = 0x05F,
    CMSG_CREATURE_QUERY                             = 0x060,
    SMSG_CREATURE_QUERY_RESPONSE                    = 0x061,
    CMSG_WHO                                        = 0x062,
    SMSG_WHO                                        = 0x063,
    CMSG_WHOIS                                      = 0x064,
    SMSG_WHOIS                                      = 0x065,
    CMSG_FRIEND_LIST                                = 0x066,
    SMSG_FRIEND_LIST                                = 0x067,
    SMSG_FRIEND_STATUS                              = 0x068,
    CMSG_ADD_FRIEND                                 = 0x069,
    CMSG_DEL_FRIEND                                 = 0x06A,
    SMSG_IGNORE_LIST                                = 0x06B,
    CMSG_ADD_IGNORE                                 = 0x06C,
    CMSG_DEL_IGNORE                                 = 0x06D,
    CMSG_GROUP_INVITE                               = 0x06E,
    SMSG_GROUP_INVITE                               = 0x06F,
    CMSG_GROUP_CANCEL                               = 0x070,
    SMSG_GROUP_CANCEL                               = 0x071,
    CMSG_GROUP_ACCEPT                               = 0x072,
    CMSG_GROUP_DECLINE                              = 0x073,
    SMSG_GROUP_DECLINE                              = 0x074,
    CMSG_GROUP_UNINVITE                             = 0x075,
    CMSG_GROUP_UNINVITE_GUID                        = 0x076,
    SMSG_GROUP_UNINVITE                             = 0x077,
    CMSG_GROUP_SET_LEADER                           = 0x078,
    SMSG_GROUP_SET_LEADER                           = 0x079,
    CMSG_LOOT_METHOD                                = 0x07A,
    CMSG_GROUP_DISBAND                              = 0x07B,
    SMSG_GROUP_DESTROYED                            = 0x07C,
    SMSG_GROUP_LIST                                 = 0x07D,
    SMSG_PARTY_MEMBER_STATS                         = 0x07E,
    SMSG_PARTY_COMMAND_RESULT                       = 0x07F,
    UMSG_UPDATE_GROUP_MEMBERS                       = 0x080,
    CMSG_GUILD_CREATE                               = 0x081,
    CMSG_GUILD_INVITE                               = 0x082,
    SMSG_GUILD_INVITE                               = 0x083,
    CMSG_GUILD_ACCEPT                               = 0x084,
    CMSG_GUILD_DECLINE                              = 0x085,
    SMSG_GUILD_DECLINE                              = 0x086,
    CMSG_GUILD_INFO                                 = 0x087,
    SMSG_GUILD_INFO                                 = 0x088,
    CMSG_GUILD_ROSTER                               = 0x089,
    SMSG_GUILD_ROSTER                               = 0x08A,
    CMSG_GUILD_PROMOTE                              = 0x08B,
    CMSG_GUILD_DEMOTE                               = 0x08C,
    CMSG_GUILD_LEAVE                                = 0x08D,
    CMSG_GUILD_REMOVE                               = 0x08E,
    CMSG_GUILD_DISBAND                              = 0x08F,
    CMSG_GUILD_LEADER                               = 0x090,
    CMSG_GUILD_MOTD                                 = 0x091,
    SMSG_GUILD_EVENT                                = 0x092,
    SMSG_GUILD_COMMAND_RESULT                       = 0x093,
    UMSG_UPDATE_GUILD                               = 0x094,
    CMSG_MESSAGECHAT                                = 0x095,
    SMSG_MESSAGECHAT                                = 0x096,
    CMSG_JOIN_CHANNEL                               = 0x097,
    CMSG_LEAVE_CHANNEL                              = 0x098,
    SMSG_CHANNEL_NOTIFY                             = 0x099,
    CMSG_CHANNEL_LIST                               = 0x09A,
    SMSG_CHANNEL_LIST                               = 0x09B,
    CMSG_CHANNEL_PASSWORD                           = 0x09C,
    CMSG_CHANNEL_SET_OWNER                          = 0x09D,
    CMSG_CHANNEL_OWNER                              = 0x09E,
    CMSG_CHANNEL_MODERATOR                          = 0x09F,
    CMSG_CHANNEL_UNMODERATOR                        = 0x0A0,
    CMSG_CHANNEL_MUTE                               = 0x0A1,
    CMSG_CHANNEL_UNMUTE                             = 0x0A2,
    CMSG_CHANNEL_INVITE                             = 0x0A3,
    CMSG_CHANNEL_KICK                               = 0x0A4,
    CMSG_CHANNEL_BAN                                = 0x0A5,
    CMSG_CHANNEL_UNBAN                              = 0x0A6,
    CMSG_CHANNEL_ANNOUNCEMENTS                      = 0x0A7,
    CMSG_CHANNEL_MODERATE                           = 0x0A8,
    SMSG_UPDATE_OBJECT                              = 0x0A9,
    SMSG_DESTROY_OBJECT                             = 0x0AA,
    CMSG_USE_ITEM                                   = 0x0AB,
    CMSG_OPEN_ITEM                                  = 0x0AC,
    CMSG_READ_ITEM                                  = 0x0AD,
    SMSG_READ_ITEM_OK                               = 0x0AE,
    SMSG_READ_ITEM_FAILED                           = 0x0AF,
    SMSG_ITEM_COOLDOWN                              = 0x0B0,
    CMSG_GAMEOBJ_USE                                = 0x0B1,
    CMSG_GAMEOBJ_CHAIR_USE_OBSOLETE                 = 0x0B2,
    SMSG_GAMEOBJECT_CUSTOM_ANIM                     = 0x0B3,
    CMSG_AREATRIGGER                                = 0x0B4,
    MSG_MOVE_START_FORWARD                          = 0x0B5,
    MSG_MOVE_START_BACKWARD                         = 0x0B6,
    MSG_MOVE_STOP                                   = 0x0B7,
    MSG_MOVE_START_STRAFE_LEFT                      = 0x0B8,
    MSG_MOVE_START_STRAFE_RIGHT                     = 0x0B9,
    MSG_MOVE_STOP_STRAFE                            = 0x0BA,
    MSG_MOVE_JUMP                                   = 0x0BB,
    MSG_MOVE_START_TURN_LEFT                        = 0x0BC,
    MSG_MOVE_START_TURN_RIGHT                       = 0x0BD,
    MSG_MOVE_STOP_TURN                              = 0x0BE,
    MSG_MOVE_START_PITCH_UP                         = 0x0BF,
    MSG_MOVE_START_PITCH_DOWN                       = 0x0C0,
    MSG_MOVE_STOP_PITCH                             = 0x0C1,
    MSG_MOVE_SET_RUN_MODE                           = 0x0C2,
    MSG_MOVE_SET_WALK_MODE                          = 0x0C3,
    MSG_MOVE_TOGGLE_LOGGING                         = 0x0C4,
    MSG_MOVE_TELEPORT                               = 0x0C5,
    MSG_MOVE_TELEPORT_CHEAT                         = 0x0C6,
    MSG_MOVE_TELEPORT_ACK                           = 0x0C7,
    MSG_MOVE_TOGGLE_FALL_LOGGING                    = 0x0C8,
    MSG_MOVE_FALL_LAND                              = 0x0C9,
    MSG_MOVE_START_SWIM                             = 0x0CA,
    MSG_MOVE_STOP_SWIM                              = 0x0CB,
    MSG_MOVE_SET_RUN_SPEED_CHEAT                    = 0x0CC,
    MSG_MOVE_SET_RUN_SPEED                          = 0x0CD,
    MSG_MOVE_SET_RUN_BACK_SPEED_CHEAT               = 0x0CE,
    MSG_MOVE_SET_RUN_BACK_SPEED                     = 0x0CF,
    MSG_MOVE_SET_WALK_SPEED_CHEAT                   = 0x0D0,
    MSG_MOVE_SET_WALK_SPEED                         = 0x0D1,
    MSG_MOVE_SET_SWIM_SPEED_CHEAT                   = 0x0D2,
    MSG_MOVE_SET_SWIM_SPEED                         = 0x0D3,
    MSG_MOVE_SET_SWIM_BACK_SPEED_CHEAT              = 0x0D4,
    MSG_MOVE_SET_SWIM_BACK_SPEED                    = 0x0D5,
    MSG_MOVE_SET_ALL_SPEED_CHEAT                    = 0x0D6,
    MSG_MOVE_SET_TURN_RATE_CHEAT                    = 0x0D7,
    MSG_MOVE_SET_TURN_RATE                          = 0x0D8,
    MSG_MOVE_TOGGLE_COLLISION_CHEAT                 = 0x0D9,
    MSG_MOVE_SET_FACING                             = 0x0DA,
    MSG_MOVE_SET_PITCH                              = 0x0DB,
    MSG_MOVE_WORLDPORT_ACK                          = 0x0DC,
    SMSG_MONSTER_MOVE                               = 0x0DD,
    SMSG_MOVE_WATER_WALK                            = 0x0DE,
    SMSG_MOVE_LAND_WALK                             = 0x0DF,
    MSG_MOVE_SET_RAW_POSITION_ACK                   = 0x0E0,
    CMSG_MOVE_SET_RAW_POSITION                      = 0x0E1,
    SMSG_FORCE_RUN_SPEED_CHANGE                     = 0x0E2,
    CMSG_FORCE_RUN_SPEED_CHANGE_ACK                 = 0x0E3,
    SMSG_FORCE_RUN_BACK_SPEED_CHANGE                = 0x0E4,
    CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK            = 0x0E5,
    SMSG_FORCE_SWIM_SPEED_CHANGE                    = 0x0E6,
    CMSG_FORCE_SWIM_SPEED_CHANGE_ACK                = 0x0E7,
    SMSG_FORCE_MOVE_ROOT                            = 0x0E8,
    CMSG_FORCE_MOVE_ROOT_ACK                        = 0x0E9,
    SMSG_FORCE_MOVE_UNROOT                          = 0x0EA,
    CMSG_FORCE_MOVE_UNROOT_ACK                      = 0x0EB,
    MSG_MOVE_ROOT                                   = 0x0EC,
    MSG_MOVE_UNROOT                                 = 0x0ED,
    MSG_MOVE_HEARTBEAT                              = 0x0EE,
    SMSG_MOVE_KNOCK_BACK                            = 0x0EF,
    CMSG_MOVE_KNOCK_BACK_ACK                        = 0x0F0,
    MSG_MOVE_KNOCK_BACK                             = 0x0F1,
    SMSG_MOVE_FEATHER_FALL                          = 0x0F2,
    SMSG_MOVE_NORMAL_FALL                           = 0x0F3,
    SMSG_MOVE_SET_HOVER                             = 0x0F4,
    SMSG_MOVE_UNSET_HOVER                           = 0x0F5,
    CMSG_MOVE_HOVER_ACK                             = 0x0F6,
    MSG_MOVE_HOVER                                  = 0x0F7,
    CMSG_TRIGGER_CINEMATIC_CHEAT                    = 0x0F8,
    CMSG_OPENING_CINEMATIC                          = 0x0F9,
    SMSG_TRIGGER_CINEMATIC                          = 0x0FA,
    CMSG_NEXT_CINEMATIC_CAMERA                      = 0x0FB,
    CMSG_COMPLETE_CINEMATIC                         = 0x0FC,
    SMSG_TUTORIAL_FLAGS                             = 0x0FD,
    CMSG_TUTORIAL_FLAG                              = 0x0FE,
    CMSG_TUTORIAL_CLEAR                             = 0x0FF,
    CMSG_TUTORIAL_RESET                             = 0x100,
    CMSG_STANDSTATECHANGE                           = 0x101,
    CMSG_EMOTE                                      = 0x102,
    SMSG_EMOTE                                      = 0x103,
    CMSG_TEXT_EMOTE                                 = 0x104,
    SMSG_TEXT_EMOTE                                 = 0x105,
    CMSG_AUTOEQUIP_GROUND_ITEM                      = 0x106,
    CMSG_AUTOSTORE_GROUND_ITEM                      = 0x107,
    CMSG_AUTOSTORE_LOOT_ITEM                        = 0x108,
    CMSG_STORE_LOOT_IN_SLOT                         = 0x109,
    CMSG_AUTOEQUIP_ITEM                             = 0x10A,
    CMSG_AUTOSTORE_BAG_ITEM                         = 0x10B,
    CMSG_SWAP_ITEM                                  = 0x10C,
    CMSG_SWAP_INV_ITEM                              = 0x10D,
    CMSG_SPLIT_ITEM                                 = 0x10E,
    CMSG_AUTOEQUIP_ITEM_SLOT                        = 0x10F,
    OBSOLETE_DROP_ITEM                              = 0x110,
    CMSG_DESTROYITEM                                = 0x111,
    SMSG_INVENTORY_CHANGE_FAILURE                   = 0x112,
    SMSG_OPEN_CONTAINER                             = 0x113,
    CMSG_INSPECT                                    = 0x114,
    SMSG_INSPECT                                    = 0x115,
    CMSG_INITIATE_TRADE                             = 0x116,
    CMSG_BEGIN_TRADE                                = 0x117,
    CMSG_BUSY_TRADE                                 = 0x118,
    CMSG_IGNORE_TRADE                               = 0x119,
    CMSG_ACCEPT_TRADE                               = 0x11A,
    CMSG_UNACCEPT_TRADE                             = 0x11B,
    CMSG_CANCEL_TRADE                               = 0x11C,
    CMSG_SET_TRADE_ITEM                             = 0x11D,
    CMSG_CLEAR_TRADE_ITEM                           = 0x11E,
    CMSG_SET_TRADE_GOLD                             = 0x11F,
    SMSG_TRADE_STATUS                               = 0x120,
    SMSG_TRADE_STATUS_EXTENDED                      = 0x121,
    SMSG_INITIALIZE_FACTIONS                        = 0x122,
    SMSG_SET_FACTION_VISIBLE                        = 0x123,
    SMSG_SET_FACTION_STANDING                       = 0x124,
    CMSG_SET_FACTION_ATWAR                          = 0x125,
    CMSG_SET_FACTION_CHEAT                          = 0x126,
    SMSG_SET_PROFICIENCY                            = 0x127,
    CMSG_SET_ACTION_BUTTON                          = 0x128,
    SMSG_ACTION_BUTTONS                             = 0x129,
    SMSG_INITIAL_SPELLS                             = 0x12A,
    SMSG_LEARNED_SPELL                              = 0x12B,
    SMSG_SUPERCEDED_SPELL                           = 0x12C,
    CMSG_NEW_SPELL_SLOT                             = 0x12D,
    CMSG_CAST_SPELL                                 = 0x12E,
    CMSG_CANCEL_CAST                                = 0x12F,
    SMSG_CAST_RESULT                                = 0x130,
    SMSG_SPELL_START                                = 0x131,
    SMSG_SPELL_GO                                   = 0x132,
    SMSG_SPELL_FAILURE                              = 0x133,
    SMSG_SPELL_COOLDOWN                             = 0x134,
    SMSG_COOLDOWN_EVENT                             = 0x135,
    CMSG_CANCEL_AURA                                = 0x136,
    SMSG_UPDATE_AURA_DURATION                       = 0x137,
    SMSG_PET_CAST_FAILED                            = 0x138,
    MSG_CHANNEL_START                               = 0x139,
    MSG_CHANNEL_UPDATE                              = 0x13A,
    CMSG_CANCEL_CHANNELLING                         = 0x13B,
    SMSG_AI_REACTION                                = 0x13C,
    CMSG_SET_SELECTION                              = 0x13D,
    CMSG_SET_TARGET_OBSOLETE                        = 0x13E,
    CMSG_UNUSED                                     = 0x13F,
    CMSG_UNUSED2                                    = 0x140,
    CMSG_ATTACKSWING                                = 0x141,
    CMSG_ATTACKSTOP                                 = 0x142,
    SMSG_ATTACKSTART                                = 0x143,
    SMSG_ATTACKSTOP                                 = 0x144,
    SMSG_ATTACKSWING_NOTINRANGE                     = 0x145,
    SMSG_ATTACKSWING_BADFACING                      = 0x146,
    SMSG_ATTACKSWING_NOTSTANDING                    = 0x147,
    SMSG_ATTACKSWING_DEADTARGET                     = 0x148,
    SMSG_ATTACKSWING_CANT_ATTACK                    = 0x149,
    SMSG_ATTACKERSTATEUPDATE                        = 0x14A,
    SMSG_VICTIMSTATEUPDATE_OBSOLETE                 = 0x14B,
    SMSG_DAMAGE_DONE_OBSOLETE                       = 0x14C,
    SMSG_DAMAGE_TAKEN_OBSOLETE                      = 0x14D,
    SMSG_CANCEL_COMBAT                              = 0x14E,
    SMSG_PLAYER_COMBAT_XP_GAIN_OBSOLETE             = 0x14F,
    SMSG_SPELLHEALLOG                               = 0x150,
    SMSG_SPELLENERGIZELOG                           = 0x151,
    CMSG_SHEATHE_OBSOLETE                           = 0x152,
    CMSG_SAVE_PLAYER                                = 0x153,
    CMSG_SETDEATHBINDPOINT                          = 0x154,
    SMSG_BINDPOINTUPDATE                            = 0x155,
    CMSG_GETDEATHBINDZONE                           = 0x156,
    SMSG_BINDZONEREPLY                              = 0x157,
    SMSG_PLAYERBOUND                                = 0x158,
    SMSG_CLIENT_CONTROL_UPDATE                      = 0x159,
    CMSG_REPOP_REQUEST                              = 0x15A,
    SMSG_RESURRECT_REQUEST                          = 0x15B,
    CMSG_RESURRECT_RESPONSE                         = 0x15C,
    CMSG_LOOT                                       = 0x15D,
    CMSG_LOOT_MONEY                                 = 0x15E,
    CMSG_LOOT_RELEASE                               = 0x15F,
    SMSG_LOOT_RESPONSE                              = 0x160,
    SMSG_LOOT_RELEASE_RESPONSE                      = 0x161,
    SMSG_LOOT_REMOVED                               = 0x162,
    SMSG_LOOT_MONEY_NOTIFY                          = 0x163,
    SMSG_LOOT_ITEM_NOTIFY                           = 0x164,
    SMSG_LOOT_CLEAR_MONEY                           = 0x165,
    SMSG_ITEM_PUSH_RESULT                           = 0x166,
    SMSG_DUEL_REQUESTED                             = 0x167,
    SMSG_DUEL_OUTOFBOUNDS                           = 0x168,
    SMSG_DUEL_INBOUNDS                              = 0x169,
    SMSG_DUEL_COMPLETE                              = 0x16A,
    SMSG_DUEL_WINNER                                = 0x16B,
    CMSG_DUEL_ACCEPTED                              = 0x16C,
    CMSG_DUEL_CANCELLED                             = 0x16D,
    SMSG_MOUNTRESULT                                = 0x16E,
    SMSG_DISMOUNTRESULT                             = 0x16F,
    SMSG_PUREMOUNT_CANCELLED_OBSOLETE               = 0x170,
    CMSG_MOUNTSPECIAL_ANIM                          = 0x171,
    SMSG_MOUNTSPECIAL_ANIM                          = 0x172,
    SMSG_PET_TAME_FAILURE                           = 0x173,
    CMSG_PET_SET_ACTION                             = 0x174,
    CMSG_PET_ACTION                                 = 0x175,
    CMSG_PET_ABANDON                                = 0x176,
    CMSG_PET_RENAME                                 = 0x177,
    SMSG_PET_NAME_INVALID                           = 0x178,
    SMSG_PET_SPELLS                                 = 0x179,
    SMSG_PET_MODE                                   = 0x17A,
    CMSG_GOSSIP_HELLO                               = 0x17B,
    CMSG_GOSSIP_SELECT_OPTION                       = 0x17C,
    SMSG_GOSSIP_MESSAGE                             = 0x17D,
    SMSG_GOSSIP_COMPLETE                            = 0x17E,
    CMSG_NPC_TEXT_QUERY                             = 0x17F,
    SMSG_NPC_TEXT_UPDATE                            = 0x180,
    SMSG_NPC_WONT_TALK                              = 0x181,
    CMSG_QUESTGIVER_STATUS_QUERY                    = 0x182,
    SMSG_QUESTGIVER_STATUS                          = 0x183,
    CMSG_QUESTGIVER_HELLO                           = 0x184,
    SMSG_QUESTGIVER_QUEST_LIST                      = 0x185,
    CMSG_QUESTGIVER_QUERY_QUEST                     = 0x186,
    CMSG_QUESTGIVER_QUEST_AUTOLAUNCH                = 0x187,
    SMSG_QUESTGIVER_QUEST_DETAILS                   = 0x188,
    CMSG_QUESTGIVER_ACCEPT_QUEST                    = 0x189,
    CMSG_QUESTGIVER_COMPLETE_QUEST                  = 0x18A,
    SMSG_QUESTGIVER_REQUEST_ITEMS                   = 0x18B,
    CMSG_QUESTGIVER_REQUEST_REWARD                  = 0x18C,
    SMSG_QUESTGIVER_OFFER_REWARD                    = 0x18D,
    CMSG_QUESTGIVER_CHOOSE_REWARD                   = 0x18E,
    SMSG_QUESTGIVER_QUEST_INVALID                   = 0x18F,
    CMSG_QUESTGIVER_CANCEL                          = 0x190,
    SMSG_QUESTGIVER_QUEST_COMPLETE                  = 0x191,
    SMSG_QUESTGIVER_QUEST_FAILED                    = 0x192,
    CMSG_QUESTLOG_SWAP_QUEST                        = 0x193,
    CMSG_QUESTLOG_REMOVE_QUEST                      = 0x194,
    SMSG_QUESTLOG_FULL                              = 0x195,
    SMSG_QUESTUPDATE_FAILED                         = 0x196,
    SMSG_QUESTUPDATE_FAILEDTIMER                    = 0x197,
    SMSG_QUESTUPDATE_COMPLETE                       = 0x198,
    SMSG_QUESTUPDATE_ADD_KILL                       = 0x199,
    SMSG_QUESTUPDATE_ADD_ITEM                       = 0x19A,
    CMSG_QUEST_CONFIRM_ACCEPT                       = 0x19B,
    SMSG_QUEST_CONFIRM_ACCEPT                       = 0x19C,
    CMSG_PUSHQUESTTOPARTY                           = 0x19D,
    CMSG_LIST_INVENTORY                             = 0x19E,
    SMSG_LIST_INVENTORY                             = 0x19F,
    CMSG_SELL_ITEM                                  = 0x1A0,
    SMSG_SELL_ITEM                                  = 0x1A1,
    CMSG_BUY_ITEM                                   = 0x1A2,
    CMSG_BUY_ITEM_IN_SLOT                           = 0x1A3,
    SMSG_BUY_ITEM                                   = 0x1A4,
    SMSG_BUY_FAILED                                 = 0x1A5,
    CMSG_TAXICLEARALLNODES                          = 0x1A6,
    CMSG_TAXIENABLEALLNODES                         = 0x1A7,
    CMSG_TAXISHOWNODES                              = 0x1A8,
    SMSG_SHOWTAXINODES                              = 0x1A9,
    CMSG_TAXINODE_STATUS_QUERY                      = 0x1AA,
    SMSG_TAXINODE_STATUS                            = 0x1AB,
    CMSG_TAXIQUERYAVAILABLENODES                    = 0x1AC,
    CMSG_ACTIVATETAXI                               = 0x1AD,
    SMSG_ACTIVATETAXIREPLY                          = 0x1AE,
    SMSG_NEW_TAXI_PATH                              = 0x1AF,
    CMSG_TRAINER_LIST                               = 0x1B0,
    SMSG_TRAINER_LIST                               = 0x1B1,
    CMSG_TRAINER_BUY_SPELL                          = 0x1B2,
    SMSG_TRAINER_BUY_SUCCEEDED                      = 0x1B3,
    SMSG_TRAINER_BUY_FAILED                         = 0x1B4,
    CMSG_BINDER_ACTIVATE                            = 0x1B5,
    SMSG_PLAYERBINDERROR                            = 0x1B6,
    CMSG_BANKER_ACTIVATE                            = 0x1B7,
    SMSG_SHOW_BANK                                  = 0x1B8,
    CMSG_BUY_BANK_SLOT                              = 0x1B9,
    SMSG_BUY_BANK_SLOT_RESULT                       = 0x1BA,
    CMSG_PETITION_SHOWLIST                          = 0x1BB,
    SMSG_PETITION_SHOWLIST                          = 0x1BC,
    CMSG_PETITION_BUY                               = 0x1BD,
    CMSG_PETITION_SHOW_SIGNATURES                   = 0x1BE,
    SMSG_PETITION_SHOW_SIGNATURES                   = 0x1BF,
    CMSG_PETITION_SIGN                              = 0x1C0,
    SMSG_PETITION_SIGN_RESULTS                      = 0x1C1,
    MSG_PETITION_DECLINE                            = 0x1C2,
    CMSG_OFFER_PETITION                             = 0x1C3,
    CMSG_TURN_IN_PETITION                           = 0x1C4,
    SMSG_TURN_IN_PETITION_RESULTS                   = 0x1C5,
    CMSG_PETITION_QUERY                             = 0x1C6,
    SMSG_PETITION_QUERY_RESPONSE                    = 0x1C7,
    SMSG_FISH_NOT_HOOKED                            = 0x1C8,
    SMSG_FISH_ESCAPED                               = 0x1C9,
    CMSG_BUG                                        = 0x1CA,
    SMSG_NOTIFICATION                               = 0x1CB,
    CMSG_PLAYED_TIME                                = 0x1CC,
    SMSG_PLAYED_TIME                                = 0x1CD,
    CMSG_QUERY_TIME                                 = 0x1CE,
    SMSG_QUERY_TIME_RESPONSE                        = 0x1CF,
    SMSG_LOG_XPGAIN                                 = 0x1D0,
    SMSG_AURACASTLOG                                = 0x1D1,
    CMSG_RECLAIM_CORPSE                             = 0x1D2,
    CMSG_WRAP_ITEM                                  = 0x1D3,
    SMSG_LEVELUP_INFO                               = 0x1D4,
    MSG_MINIMAP_PING                                = 0x1D5,
    SMSG_RESISTLOG                                  = 0x1D6,
    SMSG_ENCHANTMENTLOG                             = 0x1D7,
    CMSG_SET_SKILL_CHEAT                            = 0x1D8,
    SMSG_START_MIRROR_TIMER                         = 0x1D9,
    SMSG_PAUSE_MIRROR_TIMER                         = 0x1DA,
    SMSG_STOP_MIRROR_TIMER                          = 0x1DB,
    CMSG_PING                                       = 0x1DC,
    SMSG_PONG                                       = 0x1DD,
    SMSG_CLEAR_COOLDOWN                             = 0x1DE,
    SMSG_GAMEOBJECT_PAGETEXT                        = 0x1DF,
    CMSG_SETSHEATHED                                = 0x1E0,
    SMSG_COOLDOWN_CHEAT                             = 0x1E1,
    SMSG_SPELL_DELAYED                              = 0x1E2,
    CMSG_PLAYER_MACRO_OBSOLETE                      = 0x1E3,
    SMSG_PLAYER_MACRO_OBSOLETE                      = 0x1E4,
    CMSG_GHOST                                      = 0x1E5,
    CMSG_GM_INVIS                                   = 0x1E6,
    SMSG_INVALID_PROMOTION_CODE                     = 0x1E7,
    MSG_GM_BIND_OTHER                               = 0x1E8,
    MSG_GM_SUMMON                                   = 0x1E9,
    SMSG_ITEM_TIME_UPDATE                           = 0x1EA,
    SMSG_ITEM_ENCHANT_TIME_UPDATE                   = 0x1EB,
    SMSG_AUTH_CHALLENGE                             = 0x1EC,
    CMSG_AUTH_SESSION                               = 0x1ED,
    SMSG_AUTH_RESPONSE                              = 0x1EE,
    MSG_GM_SHOWLABEL                                = 0x1EF,
    CMSG_PET_CAST_SPELL                             = 0x1F0,
    MSG_SAVE_GUILD_EMBLEM                           = 0x1F1,
    MSG_TABARDVENDOR_ACTIVATE                       = 0x1F2,
    SMSG_PLAY_SPELL_VISUAL                          = 0x1F3,
    CMSG_ZONEUPDATE                                 = 0x1F4,
    SMSG_PARTYKILLLOG                               = 0x1F5,
    SMSG_COMPRESSED_UPDATE_OBJECT                   = 0x1F6,
    SMSG_PLAY_SPELL_IMPACT                          = 0x1F7,
    SMSG_EXPLORATION_EXPERIENCE                     = 0x1F8,
    CMSG_GM_SET_SECURITY_GROUP                      = 0x1F9,
    CMSG_GM_NUKE                                    = 0x1FA,
    MSG_RANDOM_ROLL                                 = 0x1FB,
    SMSG_ENVIRONMENTALDAMAGELOG                     = 0x1FC,
    CMSG_RWHOIS_OBSOLETE                            = 0x1FD,
    SMSG_RWHOIS                                     = 0x1FE,
    MSG_LOOKING_FOR_GROUP                           = 0x1FF,
    CMSG_SET_LOOKING_FOR_GROUP                      = 0x200,
    CMSG_UNLEARN_SPELL                              = 0x201,
    CMSG_UNLEARN_SKILL                              = 0x202,
    SMSG_REMOVED_SPELL                              = 0x203,
    CMSG_DECHARGE                                   = 0x204,
    CMSG_GMTICKET_CREATE                            = 0x205,
    SMSG_GMTICKET_CREATE                            = 0x206,
    CMSG_GMTICKET_UPDATETEXT                        = 0x207,
    SMSG_GMTICKET_UPDATETEXT                        = 0x208,
    SMSG_ACCOUNT_DATA_TIMES                         = 0x209,
    CMSG_REQUEST_ACCOUNT_DATA                       = 0x20A,
    CMSG_UPDATE_ACCOUNT_DATA                        = 0x20B,
    SMSG_UPDATE_ACCOUNT_DATA                        = 0x20C,
    SMSG_CLEAR_FAR_SIGHT_IMMEDIATE                  = 0x20D,
    SMSG_POWERGAINLOG_OBSOLETE                      = 0x20E,
    CMSG_GM_TEACH                                   = 0x20F,
    CMSG_GM_CREATE_ITEM_TARGET                      = 0x210,
    CMSG_GMTICKET_GETTICKET                         = 0x211,
    SMSG_GMTICKET_GETTICKET                         = 0x212,
    CMSG_UNLEARN_TALENTS                            = 0x213,
    SMSG_GAMEOBJECT_SPAWN_ANIM                      = 0x214,
    SMSG_GAMEOBJECT_DESPAWN_ANIM                    = 0x215,
    MSG_CORPSE_QUERY                                = 0x216,
    CMSG_GMTICKET_DELETETICKET                      = 0x217,
    SMSG_GMTICKET_DELETETICKET                      = 0x218,
    SMSG_CHAT_WRONG_FACTION                         = 0x219,
    CMSG_GMTICKET_SYSTEMSTATUS                      = 0x21A,
    SMSG_GMTICKET_SYSTEMSTATUS                      = 0x21B,
    CMSG_SPIRIT_HEALER_ACTIVATE                     = 0x21C,
    CMSG_SET_STAT_CHEAT                             = 0x21D,
    SMSG_SET_REST_START                             = 0x21E,
    CMSG_SKILL_BUY_STEP                             = 0x21F,
    CMSG_SKILL_BUY_RANK                             = 0x220,
    CMSG_XP_CHEAT                                   = 0x221,
    SMSG_SPIRIT_HEALER_CONFIRM                      = 0x222,
    CMSG_CHARACTER_POINT_CHEAT                      = 0x223,
    SMSG_GOSSIP_POI                                 = 0x224,
    CMSG_CHAT_IGNORED                               = 0x225,
    CMSG_GM_VISION                                  = 0x226,
    CMSG_SERVER_COMMAND                             = 0x227,
    CMSG_GM_SILENCE                                 = 0x228,
    CMSG_GM_REVEALTO                                = 0x229,
    CMSG_GM_RESURRECT                               = 0x22A,
    CMSG_GM_SUMMONMOB                               = 0x22B,
    CMSG_GM_MOVECORPSE                              = 0x22C,
    CMSG_GM_FREEZE                                  = 0x22D,
    CMSG_GM_UBERINVIS                               = 0x22E,
    CMSG_GM_REQUEST_PLAYER_INFO                     = 0x22F,
    SMSG_GM_PLAYER_INFO                             = 0x230,
    CMSG_GUILD_RANK                                 = 0x231,
    CMSG_GUILD_ADD_RANK                             = 0x232,
    CMSG_GUILD_DEL_RANK                             = 0x233,
    CMSG_GUILD_SET_PUBLIC_NOTE                      = 0x234,
    CMSG_GUILD_SET_OFFICER_NOTE                     = 0x235,
    SMSG_LOGIN_VERIFY_WORLD                         = 0x236,
    CMSG_CLEAR_EXPLORATION                          = 0x237,
    CMSG_SEND_MAIL                                  = 0x238,
    SMSG_SEND_MAIL_RESULT                           = 0x239,
    CMSG_GET_MAIL_LIST                              = 0x23A,
    SMSG_MAIL_LIST_RESULT                           = 0x23B,
    CMSG_BATTLEFIELD_LIST                           = 0x23C,
    SMSG_BATTLEFIELD_LIST                           = 0x23D,
    CMSG_BATTLEFIELD_JOIN                           = 0x23E,
    SMSG_BATTLEFIELD_WIN_OBSOLETE                   = 0x23F,
    SMSG_BATTLEFIELD_LOSE_OBSOLETE                  = 0x240,
    CMSG_TAXICLEARNODE                              = 0x241,
    CMSG_TAXIENABLENODE                             = 0x242,
    CMSG_ITEM_TEXT_QUERY                            = 0x243,
    SMSG_ITEM_TEXT_QUERY_RESPONSE                   = 0x244,
    CMSG_MAIL_TAKE_MONEY                            = 0x245,
    CMSG_MAIL_TAKE_ITEM                             = 0x246,
    CMSG_MAIL_MARK_AS_READ                          = 0x247,
    CMSG_MAIL_RETURN_TO_SENDER                      = 0x248,
    CMSG_MAIL_DELETE                                = 0x249,
    CMSG_MAIL_CREATE_TEXT_ITEM                      = 0x24A,
    SMSG_SPELLLOGMISS                               = 0x24B,
    SMSG_SPELLLOGEXECUTE                            = 0x24C,
    SMSG_DEBUGAURAPROC                              = 0x24D,
    SMSG_PERIODICAURALOG                            = 0x24E,
    SMSG_SPELLDAMAGESHIELD                          = 0x24F,
    SMSG_SPELLNONMELEEDAMAGELOG                     = 0x250,
    CMSG_LEARN_TALENT                               = 0x251,
    SMSG_RESURRECT_FAILED                           = 0x252,
    CMSG_TOGGLE_PVP                                 = 0x253,
    SMSG_ZONE_UNDER_ATTACK                          = 0x254,
    MSG_AUCTION_HELLO                               = 0x255,
    CMSG_AUCTION_SELL_ITEM                          = 0x256,
    CMSG_AUCTION_REMOVE_ITEM                        = 0x257,
    CMSG_AUCTION_LIST_ITEMS                         = 0x258,
    CMSG_AUCTION_LIST_OWNER_ITEMS                   = 0x259,
    CMSG_AUCTION_PLACE_BID                          = 0x25A,
    SMSG_AUCTION_COMMAND_RESULT                     = 0x25B,
    SMSG_AUCTION_LIST_RESULT                        = 0x25C,
    SMSG_AUCTION_OWNER_LIST_RESULT                  = 0x25D,
    SMSG_AUCTION_BIDDER_NOTIFICATION                = 0x25E,
    SMSG_AUCTION_OWNER_NOTIFICATION                 = 0x25F,
    SMSG_PROCRESIST                                 = 0x260,
    SMSG_STANDSTATE_CHANGE_FAILURE_OBSOLETE         = 0x261,
    SMSG_DISPEL_FAILED                              = 0x262,
    SMSG_SPELLORDAMAGE_IMMUNE                       = 0x263,
    CMSG_AUCTION_LIST_BIDDER_ITEMS                  = 0x264,
    SMSG_AUCTION_BIDDER_LIST_RESULT                 = 0x265,
    SMSG_SET_FLAT_SPELL_MODIFIER                    = 0x266,
    SMSG_SET_PCT_SPELL_MODIFIER                     = 0x267,
    CMSG_SET_AMMO                                   = 0x268,
    SMSG_CORPSE_RECLAIM_DELAY                       = 0x269,
    CMSG_SET_ACTIVE_MOVER                           = 0x26A,
    CMSG_PET_CANCEL_AURA                            = 0x26B,
    CMSG_PLAYER_AI_CHEAT                            = 0x26C,
    CMSG_CANCEL_AUTO_REPEAT_SPELL                   = 0x26D,
    MSG_GM_ACCOUNT_ONLINE                           = 0x26E,
    MSG_LIST_STABLED_PETS                           = 0x26F,
    CMSG_STABLE_PET                                 = 0x270,
    CMSG_UNSTABLE_PET                               = 0x271,
    CMSG_BUY_STABLE_SLOT                            = 0x272,
    SMSG_STABLE_RESULT                              = 0x273,
    CMSG_STABLE_REVIVE_PET                          = 0x274,
    CMSG_STABLE_SWAP_PET                            = 0x275,
    MSG_QUEST_PUSH_RESULT                           = 0x276,
    SMSG_PLAY_MUSIC                                 = 0x277,
    SMSG_PLAY_OBJECT_SOUND                          = 0x278,
    CMSG_REQUEST_PET_INFO                           = 0x279,
    CMSG_FAR_SIGHT                                  = 0x27A,
    SMSG_SPELLDISPELLOG                             = 0x27B,
    SMSG_DAMAGE_CALC_LOG                            = 0x27C,
    CMSG_ENABLE_DAMAGE_LOG                          = 0x27D,
    CMSG_GROUP_CHANGE_SUB_GROUP                     = 0x27E,
    CMSG_REQUEST_PARTY_MEMBER_STATS                 = 0x27F,
    CMSG_GROUP_SWAP_SUB_GROUP                       = 0x280,
    CMSG_RESET_FACTION_CHEAT                        = 0x281,
    CMSG_AUTOSTORE_BANK_ITEM                        = 0x282,
    CMSG_AUTOBANK_ITEM                              = 0x283,
    MSG_QUERY_NEXT_MAIL_TIME                        = 0x284,
    SMSG_RECEIVED_MAIL                              = 0x285,
    SMSG_RAID_GROUP_ONLY                            = 0x286,
    CMSG_SET_DURABILITY_CHEAT                       = 0x287,
    CMSG_SET_PVP_RANK_CHEAT                         = 0x288,
    CMSG_ADD_PVP_MEDAL_CHEAT                        = 0x289,
    CMSG_DEL_PVP_MEDAL_CHEAT                        = 0x28A,
    CMSG_SET_PVP_TITLE                              = 0x28B,
    SMSG_PVP_CREDIT                                 = 0x28C,
    SMSG_AUCTION_REMOVED_NOTIFICATION               = 0x28D,
    CMSG_GROUP_RAID_CONVERT                         = 0x28E,
    CMSG_GROUP_ASSISTANT_LEADER                     = 0x28F,
    CMSG_BUYBACK_ITEM                               = 0x290,
    SMSG_SERVER_MESSAGE                             = 0x291,
    CMSG_MEETINGSTONE_JOIN                          = 0x292,
    CMSG_MEETINGSTONE_LEAVE                         = 0x293,
    CMSG_MEETINGSTONE_CHEAT                         = 0x294,
    SMSG_MEETINGSTONE_SETQUEUE                      = 0x295,
    CMSG_MEETINGSTONE_INFO                          = 0x296,
    SMSG_MEETINGSTONE_COMPLETE                      = 0x297,
    SMSG_MEETINGSTONE_IN_PROGRESS                   = 0x298,
    SMSG_MEETINGSTONE_MEMBER_ADDED                  = 0x299,
    CMSG_GMTICKETSYSTEM_TOGGLE                      = 0x29A,
    CMSG_CANCEL_GROWTH_AURA                         = 0x29B,
    SMSG_CANCEL_AUTO_REPEAT                         = 0x29C,
    SMSG_STANDSTATE_UPDATE                          = 0x29D,
    SMSG_LOOT_ALL_PASSED                            = 0x29E,
    SMSG_LOOT_ROLL_WON                              = 0x29F,
    CMSG_LOOT_ROLL                                  = 0x2A0,
    SMSG_LOOT_START_ROLL                            = 0x2A1,
    SMSG_LOOT_ROLL                                  = 0x2A2,
    CMSG_LOOT_MASTER_GIVE                           = 0x2A3,
    SMSG_LOOT_MASTER_LIST                           = 0x2A4,
    SMSG_SET_FORCED_REACTIONS                       = 0x2A5,
    SMSG_SPELL_FAILED_OTHER                         = 0x2A6,
    SMSG_GAMEOBJECT_RESET_STATE                     = 0x2A7,
    CMSG_REPAIR_ITEM                                = 0x2A8,
    SMSG_CHAT_PLAYER_NOT_FOUND                      = 0x2A9,
    MSG_TALENT_WIPE_CONFIRM                         = 0x2AA,
    SMSG_SUMMON_REQUEST                             = 0x2AB,
    CMSG_SUMMON_RESPONSE                            = 0x2AC,
    MSG_MOVE_TOGGLE_GRAVITY_CHEAT                   = 0x2AD,
    SMSG_MONSTER_MOVE_TRANSPORT                     = 0x2AE,
    SMSG_PET_BROKEN                                 = 0x2AF,
    MSG_MOVE_FEATHER_FALL                           = 0x2B0,
    MSG_MOVE_WATER_WALK                             = 0x2B1,
    CMSG_SERVER_BROADCAST                           = 0x2B2,
    CMSG_SELF_RES                                   = 0x2B3,
    SMSG_FEIGN_DEATH_RESISTED                       = 0x2B4,
    CMSG_RUN_SCRIPT                                 = 0x2B5,
    SMSG_SCRIPT_MESSAGE                             = 0x2B6,
    SMSG_DUEL_COUNTDOWN                             = 0x2B7,
    SMSG_AREA_TRIGGER_MESSAGE                       = 0x2B8,
    CMSG_TOGGLE_HELM                                = 0x2B9,
    CMSG_TOGGLE_CLOAK                               = 0x2BA,
    SMSG_MEETINGSTONE_JOINFAILED                    = 0x2BB,
    SMSG_PLAYER_SKINNED                             = 0x2BC,
    SMSG_DURABILITY_DAMAGE_DEATH                    = 0x2BD,
    CMSG_SET_EXPLORATION                            = 0x2BE,
    CMSG_SET_ACTIONBAR_TOGGLES                      = 0x2BF,
    UMSG_DELETE_GUILD_CHARTER                       = 0x2C0,
    MSG_PETITION_RENAME                             = 0x2C1,
    SMSG_INIT_WORLD_STATES                          = 0x2C2,
    SMSG_UPDATE_WORLD_STATE                         = 0x2C3,
    CMSG_ITEM_NAME_QUERY                            = 0x2C4,
    SMSG_ITEM_NAME_QUERY_RESPONSE                   = 0x2C5,
    SMSG_PET_ACTION_FEEDBACK                        = 0x2C6,
    CMSG_CHAR_RENAME                                = 0x2C7,
    SMSG_CHAR_RENAME                                = 0x2C8,
    CMSG_MOVE_SPLINE_DONE                           = 0x2C9,
    CMSG_MOVE_FALL_RESET                            = 0x2CA,
    SMSG_INSTANCE_SAVE_CREATED                      = 0x2CB,
    SMSG_RAID_INSTANCE_INFO                         = 0x2CC,
    CMSG_REQUEST_RAID_INFO                          = 0x2CD,
    CMSG_MOVE_TIME_SKIPPED                          = 0x2CE,
    CMSG_MOVE_FEATHER_FALL_ACK                      = 0x2CF,
    CMSG_MOVE_WATER_WALK_ACK                        = 0x2D0,
    CMSG_MOVE_NOT_ACTIVE_MOVER                      = 0x2D1,
    SMSG_PLAY_SOUND                                 = 0x2D2,
    CMSG_BATTLEFIELD_STATUS                         = 0x2D3,
    SMSG_BATTLEFIELD_STATUS                         = 0x2D4,
    CMSG_BATTLEFIELD_PORT                           = 0x2D5,
    MSG_INSPECT_HONOR_STATS                         = 0x2D6,
    CMSG_BATTLEMASTER_HELLO                         = 0x2D7,
    CMSG_MOVE_START_SWIM_CHEAT                      = 0x2D8,
    CMSG_MOVE_STOP_SWIM_CHEAT                       = 0x2D9,
    SMSG_FORCE_WALK_SPEED_CHANGE                    = 0x2DA,
    CMSG_FORCE_WALK_SPEED_CHANGE_ACK                = 0x2DB,
    SMSG_FORCE_SWIM_BACK_SPEED_CHANGE               = 0x2DC,
    CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK           = 0x2DD,
    SMSG_FORCE_TURN_RATE_CHANGE                     = 0x2DE,
    CMSG_FORCE_TURN_RATE_CHANGE_ACK                 = 0x2DF,
    MSG_PVP_LOG_DATA                                = 0x2E0,
    CMSG_LEAVE_BATTLEFIELD                          = 0x2E1,
    CMSG_AREA_SPIRIT_HEALER_QUERY                   = 0x2E2,
    CMSG_AREA_SPIRIT_HEALER_QUEUE                   = 0x2E3,
    SMSG_AREA_SPIRIT_HEALER_TIME                    = 0x2E4,
    CMSG_GM_UNTEACH                                 = 0x2E5,
    SMSG_WARDEN_DATA                                = 0x2E6,
    CMSG_WARDEN_DATA                                = 0x2E7,
    SMSG_GROUP_JOINED_BATTLEGROUND                  = 0x2E8,
    MSG_BATTLEGROUND_PLAYER_POSITIONS               = 0x2E9,
    CMSG_PET_STOP_ATTACK                            = 0x2EA,
    SMSG_BINDER_CONFIRM                             = 0x2EB,
    SMSG_BATTLEGROUND_PLAYER_JOINED                 = 0x2EC,
    SMSG_BATTLEGROUND_PLAYER_LEFT                   = 0x2ED,
    CMSG_BATTLEMASTER_JOIN                          = 0x2EE,
    SMSG_ADDON_INFO                                 = 0x2EF,
    CMSG_PET_UNLEARN                                = 0x2F0,
    SMSG_PET_UNLEARN_CONFIRM                        = 0x2F1,
    SMSG_PARTY_MEMBER_STATS_FULL                    = 0x2F2,
    CMSG_PET_SPELL_AUTOCAST                         = 0x2F3,
    SMSG_WEATHER                                    = 0x2F4,
    SMSG_PLAY_TIME_WARNING                          = 0x2F5,
    SMSG_MINIGAME_SETUP                             = 0x2F6,
    SMSG_MINIGAME_STATE                             = 0x2F7,
    CMSG_MINIGAME_MOVE                              = 0x2F8,
    SMSG_MINIGAME_MOVE_FAILED                       = 0x2F9,
    SMSG_RAID_INSTANCE_MESSAGE                      = 0x2FA,
    SMSG_COMPRESSED_MOVES                           = 0x2FB,
    CMSG_GUILD_INFO_TEXT                            = 0x2FC,
    SMSG_CHAT_RESTRICTED                            = 0x2FD,
    SMSG_SPLINE_SET_RUN_SPEED                       = 0x2FE,
    SMSG_SPLINE_SET_RUN_BACK_SPEED                  = 0x2FF,
    SMSG_SPLINE_SET_SWIM_SPEED                      = 0x300,
    SMSG_SPLINE_SET_WALK_SPEED                      = 0x301,
    SMSG_SPLINE_SET_SWIM_BACK_SPEED                 = 0x302,
    SMSG_SPLINE_SET_TURN_RATE                       = 0x303,
    SMSG_SPLINE_MOVE_UNROOT                         = 0x304,
    SMSG_SPLINE_MOVE_FEATHER_FALL                   = 0x305,
    SMSG_SPLINE_MOVE_NORMAL_FALL                    = 0x306,
    SMSG_SPLINE_MOVE_SET_HOVER                      = 0x307,
    SMSG_SPLINE_MOVE_UNSET_HOVER                    = 0x308,
    SMSG_SPLINE_MOVE_WATER_WALK                     = 0x309,
    SMSG_SPLINE_MOVE_LAND_WALK                      = 0x30A,
    SMSG_SPLINE_MOVE_START_SWIM                     = 0x30B,
    SMSG_SPLINE_MOVE_STOP_SWIM                      = 0x30C,
    SMSG_SPLINE_MOVE_SET_RUN_MODE                   = 0x30D,
    SMSG_SPLINE_MOVE_SET_WALK_MODE                  = 0x30E,
    CMSG_GM_NUKE_ACCOUNT                            = 0x30F,
    MSG_GM_DESTROY_CORPSE                           = 0x310,
    CMSG_GM_DESTROY_ONLINE_CORPSE                   = 0x311,
    CMSG_ACTIVATETAXIEXPRESS                        = 0x312,
    SMSG_SET_FACTION_ATWAR                          = 0x313,
    SMSG_GAMETIMEBIAS_SET                           = 0x314,
    CMSG_DEBUG_ACTIONS_START                        = 0x315,
    CMSG_DEBUG_ACTIONS_STOP                         = 0x316,
    CMSG_SET_FACTION_INACTIVE                       = 0x317,
    CMSG_SET_WATCHED_FACTION                        = 0x318,
    MSG_MOVE_TIME_SKIPPED                           = 0x319,
    SMSG_SPLINE_MOVE_ROOT                           = 0x31A,
    CMSG_SET_EXPLORATION_ALL                        = 0x31B,
    SMSG_INVALIDATE_PLAYER                          = 0x31C,
    CMSG_RESET_INSTANCES                            = 0x31D,
    SMSG_INSTANCE_RESET                             = 0x31E,
    SMSG_INSTANCE_RESET_FAILED                      = 0x31F,
    SMSG_UPDATE_LAST_INSTANCE                       = 0x320,
    MSG_RAID_TARGET_UPDATE                          = 0x321,
    MSG_RAID_READY_CHECK                            = 0x322,
    CMSG_LUA_USAGE                                  = 0x323,
    SMSG_PET_ACTION_SOUND                           = 0x324,
    SMSG_PET_DISMISS_SOUND                          = 0x325,
    SMSG_GHOSTEE_GONE                               = 0x326,
    CMSG_GM_UPDATE_TICKET_STATUS                    = 0x327,
    SMSG_GM_TICKET_STATUS_UPDATE                    = 0x328,
    CMSG_GMSURVEY_SUBMIT                            = 0x32A,
    SMSG_UPDATE_INSTANCE_OWNERSHIP                  = 0x32B,
    CMSG_IGNORE_KNOCKBACK_CHEAT                     = 0x32C,
    SMSG_CHAT_PLAYER_AMBIGUOUS                      = 0x32D,
    MSG_DELAY_GHOST_TELEPORT                        = 0x32E,
    SMSG_SPELLINSTAKILLLOG                          = 0x32F,
    SMSG_SPELL_UPDATE_CHAIN_TARGETS                 = 0x330,
    CMSG_CHAT_FILTERED                              = 0x331,
    SMSG_EXPECTED_SPAM_RECORDS                      = 0x332,
    SMSG_SPELLSTEALLOG                              = 0x333,
    CMSG_LOTTERY_QUERY_OBSOLETE                     = 0x334,
    SMSG_LOTTERY_QUERY_RESULT_OBSOLETE              = 0x335,
    CMSG_BUY_LOTTERY_TICKET_OBSOLETE                = 0x336,
    SMSG_LOTTERY_RESULT_OBSOLETE                    = 0x337,
    SMSG_CHARACTER_PROFILE                          = 0x338,
    SMSG_CHARACTER_PROFILE_REALM_CONNECTED          = 0x339,
    SMSG_DEFENSE_MESSAGE                            = 0x33A,
    MSG_GM_RESETINSTANCELIMIT                       = 0x33C,
    SMSG_MOTD                                       = 0x33D,
    SMSG_MOVE_SET_FLIGHT                            = 0x33E,
    SMSG_MOVE_UNSET_FLIGHT                          = 0x33F,
    CMSG_MOVE_FLIGHT_ACK                            = 0x340,
    MSG_MOVE_START_SWIM_CHEAT                       = 0x341,
    MSG_MOVE_STOP_SWIM_CHEAT                        = 0x342,
    CMSG_CANCEL_MOUNT_AURA                          = 0x375,
    CMSG_CANCEL_TEMP_ENCHANTMENT                    = 0x379,
    CMSG_MAELSTROM_INVALIDATE_CACHE                 = 0x387,
    CMSG_SET_TAXI_BENCHMARK_MODE                    = 0x389,
    CMSG_MOVE_CHNG_TRANSPORT                        = 0x38D,
    MSG_PARTY_ASSIGNMENT                            = 0x38E,
    SMSG_OFFER_PETITION_ERROR                       = 0x38F,
    SMSG_RESET_FAILED_NOTIFY                        = 0x396,
    SMSG_REAL_GROUP_UPDATE                          = 0x397,
    SMSG_INIT_EXTRA_AURA_INFO                       = 0x3A3,
    SMSG_SET_EXTRA_AURA_INFO                        = 0x3A4,
    SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE            = 0x3A5,
    SMSG_SPELL_CHANCE_PROC_LOG                      = 0x3AA,
    CMSG_MOVE_SET_RUN_SPEED                         = 0x3AB,
    SMSG_DISMOUNT                                   = 0x3AC,
    MSG_RAID_READY_CHECK_CONFIRM                    = 0x3AE,
    SMSG_CLEAR_TARGET                               = 0x3BE,
    CMSG_BOT_DETECTED                               = 0x3BF,
    SMSG_KICK_REASON                                = 0x3C4,
    MSG_RAID_READY_CHECK_FINISHED                   = 0x3C5,
    CMSG_TARGET_CAST                                = 0x3CF,
    CMSG_TARGET_SCRIPT_CAST                         = 0x3D0,
    CMSG_CHANNEL_DISPLAY_LIST                       = 0x3D1,
    CMSG_GET_CHANNEL_MEMBER_COUNT                   = 0x3D3,
    SMSG_CHANNEL_MEMBER_COUNT                       = 0x3D4,
    CMSG_DEBUG_LIST_TARGETS                         = 0x3D7,
    SMSG_DEBUG_LIST_TARGETS                         = 0x3D8,
    CMSG_PARTY_SILENCE                              = 0x3DC,
    CMSG_PARTY_UNSILENCE                            = 0x3DD,
    MSG_NOTIFY_PARTY_SQUELCH                        = 0x3DE,
    SMSG_COMSAT_RECONNECT_TRY                       = 0x3DF,
    SMSG_COMSAT_DISCONNECT                          = 0x3E0,
    SMSG_COMSAT_CONNECT_FAIL                        = 0x3E1,
    CMSG_SET_CHANNEL_WATCH                          = 0x3EE,
    SMSG_USERLIST_ADD                               = 0x3EF,
    SMSG_USERLIST_REMOVE                            = 0x3F0,
    SMSG_USERLIST_UPDATE                            = 0x3F1,
    CMSG_CLEAR_CHANNEL_WATCH                        = 0x3F2,
    SMSG_GOGOGO_OBSOLETE                            = 0x3F4,
    SMSG_ECHO_PARTY_SQUELCH                         = 0x3F5,
    CMSG_SPELLCLICK                                 = 0x3F7,
    SMSG_LOOT_LIST                                  = 0x3F8,
    MSG_GUILD_PERMISSIONS                           = 0x3FC,
    MSG_GUILD_EVENT_LOG_QUERY                       = 0x3FE,
    CMSG_MAELSTROM_RENAME_GUILD                     = 0x3FF,
    CMSG_GET_MIRRORIMAGE_DATA                       = 0x400,
    SMSG_MIRRORIMAGE_DATA                           = 0x401,
    SMSG_FORCE_DISPLAY_UPDATE                       = 0x402,
    SMSG_SPELL_CHANCE_RESIST_PUSHBACK               = 0x403,
    CMSG_IGNORE_DIMINISHING_RETURNS_CHEAT           = 0x404,
    SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT           = 0x405,
    CMSG_KEEP_ALIVE                                 = 0x406,
    SMSG_RAID_READY_CHECK_ERROR                     = 0x407,
    CMSG_OPT_OUT_OF_LOOT                            = 0x408,
    CMSG_SET_GRANTABLE_LEVELS                       = 0x40B,
    CMSG_GRANT_LEVEL                                = 0x40C,
    CMSG_DECLINE_CHANNEL_INVITE                     = 0x40F,
    CMSG_GROUPACTION_THROTTLED                      = 0x410,
    SMSG_OVERRIDE_LIGHT                             = 0x411,
    SMSG_TOTEM_CREATED                              = 0x412,
    CMSG_TOTEM_DESTROYED                            = 0x413,
    CMSG_EXPIRE_RAID_INSTANCE                       = 0x414,
    CMSG_NO_SPELL_VARIANCE                          = 0x415,
    CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY           = 0x416,
    SMSG_QUESTGIVER_STATUS_MULTIPLE                 = 0x417,
    CMSG_QUERY_SERVER_BUCK_DATA                     = 0x41A,
    CMSG_CLEAR_SERVER_BUCK_DATA                     = 0x41B,
    SMSG_SERVER_BUCK_DATA                           = 0x41C,
    SMSG_SEND_UNLEARN_SPELLS                        = 0x41D,
    SMSG_PROPOSE_LEVEL_GRANT                        = 0x41E,
    CMSG_ACCEPT_LEVEL_GRANT                         = 0x41F,
    SMSG_REFER_A_FRIEND_FAILURE                     = 0x420,
    SMSG_SUMMON_CANCEL                              = 0x423
} world_packets;

static const value_string world_packet_strings[] = {
    { MSG_NULL_ACTION, "MSG_NULL_ACTION" },
    { CMSG_BOOTME, "CMSG_BOOTME" },
    { CMSG_DBLOOKUP, "CMSG_DBLOOKUP" },
    { SMSG_DBLOOKUP, "SMSG_DBLOOKUP" },
    { CMSG_QUERY_OBJECT_POSITION, "CMSG_QUERY_OBJECT_POSITION" },
    { SMSG_QUERY_OBJECT_POSITION, "SMSG_QUERY_OBJECT_POSITION" },
    { CMSG_QUERY_OBJECT_ROTATION, "CMSG_QUERY_OBJECT_ROTATION" },
    { SMSG_QUERY_OBJECT_ROTATION, "SMSG_QUERY_OBJECT_ROTATION" },
    { CMSG_WORLD_TELEPORT, "CMSG_WORLD_TELEPORT" },
    { CMSG_TELEPORT_TO_UNIT, "CMSG_TELEPORT_TO_UNIT" },
    { CMSG_ZONE_MAP, "CMSG_ZONE_MAP" },
    { SMSG_ZONE_MAP, "SMSG_ZONE_MAP" },
    { CMSG_DEBUG_CHANGECELLZONE, "CMSG_DEBUG_CHANGECELLZONE" },
    { CMSG_EMBLAZON_TABARD_OBSOLETE, "CMSG_EMBLAZON_TABARD_OBSOLETE" },
    { CMSG_UNEMBLAZON_TABARD_OBSOLETE, "CMSG_UNEMBLAZON_TABARD_OBSOLETE" },
    { CMSG_RECHARGE, "CMSG_RECHARGE" },
    { CMSG_LEARN_SPELL, "CMSG_LEARN_SPELL" },
    { CMSG_CREATEMONSTER, "CMSG_CREATEMONSTER" },
    { CMSG_DESTROYMONSTER, "CMSG_DESTROYMONSTER" },
    { CMSG_CREATEITEM, "CMSG_CREATEITEM" },
    { CMSG_CREATEGAMEOBJECT, "CMSG_CREATEGAMEOBJECT" },
    { SMSG_CHECK_FOR_BOTS, "SMSG_CHECK_FOR_BOTS" },
    { CMSG_MAKEMONSTERATTACKGUID, "CMSG_MAKEMONSTERATTACKGUID" },
    { CMSG_BOT_DETECTED2, "CMSG_BOT_DETECTED2" },
    { CMSG_FORCEACTION, "CMSG_FORCEACTION" },
    { CMSG_FORCEACTIONONOTHER, "CMSG_FORCEACTIONONOTHER" },
    { CMSG_FORCEACTIONSHOW, "CMSG_FORCEACTIONSHOW" },
    { SMSG_FORCEACTIONSHOW, "SMSG_FORCEACTIONSHOW" },
    { CMSG_PETGODMODE, "CMSG_PETGODMODE" },
    { SMSG_PETGODMODE, "SMSG_PETGODMODE" },
    { SMSG_DEBUGINFOSPELLMISS_OBSOLETE, "SMSG_DEBUGINFOSPELLMISS_OBSOLETE" },
    { CMSG_WEATHER_SPEED_CHEAT, "CMSG_WEATHER_SPEED_CHEAT" },
    { CMSG_UNDRESSPLAYER, "CMSG_UNDRESSPLAYER" },
    { CMSG_BEASTMASTER, "CMSG_BEASTMASTER" },
    { CMSG_GODMODE, "CMSG_GODMODE" },
    { SMSG_GODMODE, "SMSG_GODMODE" },
    { CMSG_CHEAT_SETMONEY, "CMSG_CHEAT_SETMONEY" },
    { CMSG_LEVEL_CHEAT, "CMSG_LEVEL_CHEAT" },
    { CMSG_PET_LEVEL_CHEAT, "CMSG_PET_LEVEL_CHEAT" },
    { CMSG_SET_WORLDSTATE, "CMSG_SET_WORLDSTATE" },
    { CMSG_COOLDOWN_CHEAT, "CMSG_COOLDOWN_CHEAT" },
    { CMSG_USE_SKILL_CHEAT, "CMSG_USE_SKILL_CHEAT" },
    { CMSG_FLAG_QUEST, "CMSG_FLAG_QUEST" },
    { CMSG_FLAG_QUEST_FINISH, "CMSG_FLAG_QUEST_FINISH" },
    { CMSG_CLEAR_QUEST, "CMSG_CLEAR_QUEST" },
    { CMSG_SEND_EVENT, "CMSG_SEND_EVENT" },
    { CMSG_DEBUG_AISTATE, "CMSG_DEBUG_AISTATE" },
    { SMSG_DEBUG_AISTATE, "SMSG_DEBUG_AISTATE" },
    { CMSG_DISABLE_PVP_CHEAT, "CMSG_DISABLE_PVP_CHEAT" },
    { CMSG_ADVANCE_SPAWN_TIME, "CMSG_ADVANCE_SPAWN_TIME" },
    { CMSG_PVP_PORT_OBSOLETE, "CMSG_PVP_PORT_OBSOLETE" },
    { CMSG_AUTH_SRP6_BEGIN, "CMSG_AUTH_SRP6_BEGIN" },
    { CMSG_AUTH_SRP6_PROOF, "CMSG_AUTH_SRP6_PROOF" },
    { CMSG_AUTH_SRP6_RECODE, "CMSG_AUTH_SRP6_RECODE" },
    { CMSG_CHAR_CREATE, "CMSG_CHAR_CREATE" },
    { CMSG_CHAR_ENUM, "CMSG_CHAR_ENUM" },
    { CMSG_CHAR_DELETE, "CMSG_CHAR_DELETE" },
    { SMSG_AUTH_SRP6_RESPONSE, "SMSG_AUTH_SRP6_RESPONSE" },
    { SMSG_CHAR_CREATE, "SMSG_CHAR_CREATE" },
    { SMSG_CHAR_ENUM, "SMSG_CHAR_ENUM" },
    { SMSG_CHAR_DELETE, "SMSG_CHAR_DELETE" },
    { CMSG_PLAYER_LOGIN, "CMSG_PLAYER_LOGIN" },
    { SMSG_NEW_WORLD, "SMSG_NEW_WORLD" },
    { SMSG_TRANSFER_PENDING, "SMSG_TRANSFER_PENDING" },
    { SMSG_TRANSFER_ABORTED, "SMSG_TRANSFER_ABORTED" },
    { SMSG_CHARACTER_LOGIN_FAILED, "SMSG_CHARACTER_LOGIN_FAILED" },
    { SMSG_LOGIN_SETTIMESPEED, "SMSG_LOGIN_SETTIMESPEED" },
    { SMSG_GAMETIME_UPDATE, "SMSG_GAMETIME_UPDATE" },
    { CMSG_GAMETIME_SET, "CMSG_GAMETIME_SET" },
    { SMSG_GAMETIME_SET, "SMSG_GAMETIME_SET" },
    { CMSG_GAMESPEED_SET, "CMSG_GAMESPEED_SET" },
    { SMSG_GAMESPEED_SET, "SMSG_GAMESPEED_SET" },
    { CMSG_SERVERTIME, "CMSG_SERVERTIME" },
    { SMSG_SERVERTIME, "SMSG_SERVERTIME" },
    { CMSG_PLAYER_LOGOUT, "CMSG_PLAYER_LOGOUT" },
    { CMSG_LOGOUT_REQUEST, "CMSG_LOGOUT_REQUEST" },
    { SMSG_LOGOUT_RESPONSE, "SMSG_LOGOUT_RESPONSE" },
    { SMSG_LOGOUT_COMPLETE, "SMSG_LOGOUT_COMPLETE" },
    { CMSG_LOGOUT_CANCEL, "CMSG_LOGOUT_CANCEL" },
    { SMSG_LOGOUT_CANCEL_ACK, "SMSG_LOGOUT_CANCEL_ACK" },
    { CMSG_NAME_QUERY, "CMSG_NAME_QUERY" },
    { SMSG_NAME_QUERY_RESPONSE, "SMSG_NAME_QUERY_RESPONSE" },
    { CMSG_PET_NAME_QUERY, "CMSG_PET_NAME_QUERY" },
    { SMSG_PET_NAME_QUERY_RESPONSE, "SMSG_PET_NAME_QUERY_RESPONSE" },
    { CMSG_GUILD_QUERY, "CMSG_GUILD_QUERY" },
    { SMSG_GUILD_QUERY_RESPONSE, "SMSG_GUILD_QUERY_RESPONSE" },
    { CMSG_ITEM_QUERY_SINGLE, "CMSG_ITEM_QUERY_SINGLE" },
    { CMSG_ITEM_QUERY_MULTIPLE, "CMSG_ITEM_QUERY_MULTIPLE" },
    { SMSG_ITEM_QUERY_SINGLE_RESPONSE, "SMSG_ITEM_QUERY_SINGLE_RESPONSE" },
    { SMSG_ITEM_QUERY_MULTIPLE_RESPONSE, "SMSG_ITEM_QUERY_MULTIPLE_RESPONSE" },
    { CMSG_PAGE_TEXT_QUERY, "CMSG_PAGE_TEXT_QUERY" },
    { SMSG_PAGE_TEXT_QUERY_RESPONSE, "SMSG_PAGE_TEXT_QUERY_RESPONSE" },
    { CMSG_QUEST_QUERY, "CMSG_QUEST_QUERY" },
    { SMSG_QUEST_QUERY_RESPONSE, "SMSG_QUEST_QUERY_RESPONSE" },
    { CMSG_GAMEOBJECT_QUERY, "CMSG_GAMEOBJECT_QUERY" },
    { SMSG_GAMEOBJECT_QUERY_RESPONSE, "SMSG_GAMEOBJECT_QUERY_RESPONSE" },
    { CMSG_CREATURE_QUERY, "CMSG_CREATURE_QUERY" },
    { SMSG_CREATURE_QUERY_RESPONSE, "SMSG_CREATURE_QUERY_RESPONSE" },
    { CMSG_WHO, "CMSG_WHO" },
    { SMSG_WHO, "SMSG_WHO" },
    { CMSG_WHOIS, "CMSG_WHOIS" },
    { SMSG_WHOIS, "SMSG_WHOIS" },
    { CMSG_FRIEND_LIST, "CMSG_FRIEND_LIST" },
    { SMSG_FRIEND_LIST, "SMSG_FRIEND_LIST" },
    { SMSG_FRIEND_STATUS, "SMSG_FRIEND_STATUS" },
    { CMSG_ADD_FRIEND, "CMSG_ADD_FRIEND" },
    { CMSG_DEL_FRIEND, "CMSG_DEL_FRIEND" },
    { SMSG_IGNORE_LIST, "SMSG_IGNORE_LIST" },
    { CMSG_ADD_IGNORE, "CMSG_ADD_IGNORE" },
    { CMSG_DEL_IGNORE, "CMSG_DEL_IGNORE" },
    { CMSG_GROUP_INVITE, "CMSG_GROUP_INVITE" },
    { SMSG_GROUP_INVITE, "SMSG_GROUP_INVITE" },
    { CMSG_GROUP_CANCEL, "CMSG_GROUP_CANCEL" },
    { SMSG_GROUP_CANCEL, "SMSG_GROUP_CANCEL" },
    { CMSG_GROUP_ACCEPT, "CMSG_GROUP_ACCEPT" },
    { CMSG_GROUP_DECLINE, "CMSG_GROUP_DECLINE" },
    { SMSG_GROUP_DECLINE, "SMSG_GROUP_DECLINE" },
    { CMSG_GROUP_UNINVITE, "CMSG_GROUP_UNINVITE" },
    { CMSG_GROUP_UNINVITE_GUID, "CMSG_GROUP_UNINVITE_GUID" },
    { SMSG_GROUP_UNINVITE, "SMSG_GROUP_UNINVITE" },
    { CMSG_GROUP_SET_LEADER, "CMSG_GROUP_SET_LEADER" },
    { SMSG_GROUP_SET_LEADER, "SMSG_GROUP_SET_LEADER" },
    { CMSG_LOOT_METHOD, "CMSG_LOOT_METHOD" },
    { CMSG_GROUP_DISBAND, "CMSG_GROUP_DISBAND" },
    { SMSG_GROUP_DESTROYED, "SMSG_GROUP_DESTROYED" },
    { SMSG_GROUP_LIST, "SMSG_GROUP_LIST" },
    { SMSG_PARTY_MEMBER_STATS, "SMSG_PARTY_MEMBER_STATS" },
    { SMSG_PARTY_COMMAND_RESULT, "SMSG_PARTY_COMMAND_RESULT" },
    { UMSG_UPDATE_GROUP_MEMBERS, "UMSG_UPDATE_GROUP_MEMBERS" },
    { CMSG_GUILD_CREATE, "CMSG_GUILD_CREATE" },
    { CMSG_GUILD_INVITE, "CMSG_GUILD_INVITE" },
    { SMSG_GUILD_INVITE, "SMSG_GUILD_INVITE" },
    { CMSG_GUILD_ACCEPT, "CMSG_GUILD_ACCEPT" },
    { CMSG_GUILD_DECLINE, "CMSG_GUILD_DECLINE" },
    { SMSG_GUILD_DECLINE, "SMSG_GUILD_DECLINE" },
    { CMSG_GUILD_INFO, "CMSG_GUILD_INFO" },
    { SMSG_GUILD_INFO, "SMSG_GUILD_INFO" },
    { CMSG_GUILD_ROSTER, "CMSG_GUILD_ROSTER" },
    { SMSG_GUILD_ROSTER, "SMSG_GUILD_ROSTER" },
    { CMSG_GUILD_PROMOTE, "CMSG_GUILD_PROMOTE" },
    { CMSG_GUILD_DEMOTE, "CMSG_GUILD_DEMOTE" },
    { CMSG_GUILD_LEAVE, "CMSG_GUILD_LEAVE" },
    { CMSG_GUILD_REMOVE, "CMSG_GUILD_REMOVE" },
    { CMSG_GUILD_DISBAND, "CMSG_GUILD_DISBAND" },
    { CMSG_GUILD_LEADER, "CMSG_GUILD_LEADER" },
    { CMSG_GUILD_MOTD, "CMSG_GUILD_MOTD" },
    { SMSG_GUILD_EVENT, "SMSG_GUILD_EVENT" },
    { SMSG_GUILD_COMMAND_RESULT, "SMSG_GUILD_COMMAND_RESULT" },
    { UMSG_UPDATE_GUILD, "UMSG_UPDATE_GUILD" },
    { CMSG_MESSAGECHAT, "CMSG_MESSAGECHAT" },
    { SMSG_MESSAGECHAT, "SMSG_MESSAGECHAT" },
    { CMSG_JOIN_CHANNEL, "CMSG_JOIN_CHANNEL" },
    { CMSG_LEAVE_CHANNEL, "CMSG_LEAVE_CHANNEL" },
    { SMSG_CHANNEL_NOTIFY, "SMSG_CHANNEL_NOTIFY" },
    { CMSG_CHANNEL_LIST, "CMSG_CHANNEL_LIST" },
    { SMSG_CHANNEL_LIST, "SMSG_CHANNEL_LIST" },
    { CMSG_CHANNEL_PASSWORD, "CMSG_CHANNEL_PASSWORD" },
    { CMSG_CHANNEL_SET_OWNER, "CMSG_CHANNEL_SET_OWNER" },
    { CMSG_CHANNEL_OWNER, "CMSG_CHANNEL_OWNER" },
    { CMSG_CHANNEL_MODERATOR, "CMSG_CHANNEL_MODERATOR" },
    { CMSG_CHANNEL_UNMODERATOR, "CMSG_CHANNEL_UNMODERATOR" },
    { CMSG_CHANNEL_MUTE, "CMSG_CHANNEL_MUTE" },
    { CMSG_CHANNEL_UNMUTE, "CMSG_CHANNEL_UNMUTE" },
    { CMSG_CHANNEL_INVITE, "CMSG_CHANNEL_INVITE" },
    { CMSG_CHANNEL_KICK, "CMSG_CHANNEL_KICK" },
    { CMSG_CHANNEL_BAN, "CMSG_CHANNEL_BAN" },
    { CMSG_CHANNEL_UNBAN, "CMSG_CHANNEL_UNBAN" },
    { CMSG_CHANNEL_ANNOUNCEMENTS, "CMSG_CHANNEL_ANNOUNCEMENTS" },
    { CMSG_CHANNEL_MODERATE, "CMSG_CHANNEL_MODERATE" },
    { SMSG_UPDATE_OBJECT, "SMSG_UPDATE_OBJECT" },
    { SMSG_DESTROY_OBJECT, "SMSG_DESTROY_OBJECT" },
    { CMSG_USE_ITEM, "CMSG_USE_ITEM" },
    { CMSG_OPEN_ITEM, "CMSG_OPEN_ITEM" },
    { CMSG_READ_ITEM, "CMSG_READ_ITEM" },
    { SMSG_READ_ITEM_OK, "SMSG_READ_ITEM_OK" },
    { SMSG_READ_ITEM_FAILED, "SMSG_READ_ITEM_FAILED" },
    { SMSG_ITEM_COOLDOWN, "SMSG_ITEM_COOLDOWN" },
    { CMSG_GAMEOBJ_USE, "CMSG_GAMEOBJ_USE" },
    { CMSG_GAMEOBJ_CHAIR_USE_OBSOLETE, "CMSG_GAMEOBJ_CHAIR_USE_OBSOLETE" },
    { SMSG_GAMEOBJECT_CUSTOM_ANIM, "SMSG_GAMEOBJECT_CUSTOM_ANIM" },
    { CMSG_AREATRIGGER, "CMSG_AREATRIGGER" },
    { MSG_MOVE_START_FORWARD, "MSG_MOVE_START_FORWARD" },
    { MSG_MOVE_START_BACKWARD, "MSG_MOVE_START_BACKWARD" },
    { MSG_MOVE_STOP, "MSG_MOVE_STOP" },
    { MSG_MOVE_START_STRAFE_LEFT, "MSG_MOVE_START_STRAFE_LEFT" },
    { MSG_MOVE_START_STRAFE_RIGHT, "MSG_MOVE_START_STRAFE_RIGHT" },
    { MSG_MOVE_STOP_STRAFE, "MSG_MOVE_STOP_STRAFE" },
    { MSG_MOVE_JUMP, "MSG_MOVE_JUMP" },
    { MSG_MOVE_START_TURN_LEFT, "MSG_MOVE_START_TURN_LEFT" },
    { MSG_MOVE_START_TURN_RIGHT, "MSG_MOVE_START_TURN_RIGHT" },
    { MSG_MOVE_STOP_TURN, "MSG_MOVE_STOP_TURN" },
    { MSG_MOVE_START_PITCH_UP, "MSG_MOVE_START_PITCH_UP" },
    { MSG_MOVE_START_PITCH_DOWN, "MSG_MOVE_START_PITCH_DOWN" },
    { MSG_MOVE_STOP_PITCH, "MSG_MOVE_STOP_PITCH" },
    { MSG_MOVE_SET_RUN_MODE, "MSG_MOVE_SET_RUN_MODE" },
    { MSG_MOVE_SET_WALK_MODE, "MSG_MOVE_SET_WALK_MODE" },
    { MSG_MOVE_TOGGLE_LOGGING, "MSG_MOVE_TOGGLE_LOGGING" },
    { MSG_MOVE_TELEPORT, "MSG_MOVE_TELEPORT" },
    { MSG_MOVE_TELEPORT_CHEAT, "MSG_MOVE_TELEPORT_CHEAT" },
    { MSG_MOVE_TELEPORT_ACK, "MSG_MOVE_TELEPORT_ACK" },
    { MSG_MOVE_TOGGLE_FALL_LOGGING, "MSG_MOVE_TOGGLE_FALL_LOGGING" },
    { MSG_MOVE_FALL_LAND, "MSG_MOVE_FALL_LAND" },
    { MSG_MOVE_START_SWIM, "MSG_MOVE_START_SWIM" },
    { MSG_MOVE_STOP_SWIM, "MSG_MOVE_STOP_SWIM" },
    { MSG_MOVE_SET_RUN_SPEED_CHEAT, "MSG_MOVE_SET_RUN_SPEED_CHEAT" },
    { MSG_MOVE_SET_RUN_SPEED, "MSG_MOVE_SET_RUN_SPEED" },
    { MSG_MOVE_SET_RUN_BACK_SPEED_CHEAT, "MSG_MOVE_SET_RUN_BACK_SPEED_CHEAT" },
    { MSG_MOVE_SET_RUN_BACK_SPEED, "MSG_MOVE_SET_RUN_BACK_SPEED" },
    { MSG_MOVE_SET_WALK_SPEED_CHEAT, "MSG_MOVE_SET_WALK_SPEED_CHEAT" },
    { MSG_MOVE_SET_WALK_SPEED, "MSG_MOVE_SET_WALK_SPEED" },
    { MSG_MOVE_SET_SWIM_SPEED_CHEAT, "MSG_MOVE_SET_SWIM_SPEED_CHEAT" },
    { MSG_MOVE_SET_SWIM_SPEED, "MSG_MOVE_SET_SWIM_SPEED" },
    { MSG_MOVE_SET_SWIM_BACK_SPEED_CHEAT, "MSG_MOVE_SET_SWIM_BACK_SPEED_CHEAT" },
    { MSG_MOVE_SET_SWIM_BACK_SPEED, "MSG_MOVE_SET_SWIM_BACK_SPEED" },
    { MSG_MOVE_SET_ALL_SPEED_CHEAT, "MSG_MOVE_SET_ALL_SPEED_CHEAT" },
    { MSG_MOVE_SET_TURN_RATE_CHEAT, "MSG_MOVE_SET_TURN_RATE_CHEAT" },
    { MSG_MOVE_SET_TURN_RATE, "MSG_MOVE_SET_TURN_RATE" },
    { MSG_MOVE_TOGGLE_COLLISION_CHEAT, "MSG_MOVE_TOGGLE_COLLISION_CHEAT" },
    { MSG_MOVE_SET_FACING, "MSG_MOVE_SET_FACING" },
    { MSG_MOVE_SET_PITCH, "MSG_MOVE_SET_PITCH" },
    { MSG_MOVE_WORLDPORT_ACK, "MSG_MOVE_WORLDPORT_ACK" },
    { SMSG_MONSTER_MOVE, "SMSG_MONSTER_MOVE" },
    { SMSG_MOVE_WATER_WALK, "SMSG_MOVE_WATER_WALK" },
    { SMSG_MOVE_LAND_WALK, "SMSG_MOVE_LAND_WALK" },
    { MSG_MOVE_SET_RAW_POSITION_ACK, "MSG_MOVE_SET_RAW_POSITION_ACK" },
    { CMSG_MOVE_SET_RAW_POSITION, "CMSG_MOVE_SET_RAW_POSITION" },
    { SMSG_FORCE_RUN_SPEED_CHANGE, "SMSG_FORCE_RUN_SPEED_CHANGE" },
    { CMSG_FORCE_RUN_SPEED_CHANGE_ACK, "CMSG_FORCE_RUN_SPEED_CHANGE_ACK" },
    { SMSG_FORCE_RUN_BACK_SPEED_CHANGE, "SMSG_FORCE_RUN_BACK_SPEED_CHANGE" },
    { CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK, "CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK" },
    { SMSG_FORCE_SWIM_SPEED_CHANGE, "SMSG_FORCE_SWIM_SPEED_CHANGE" },
    { CMSG_FORCE_SWIM_SPEED_CHANGE_ACK, "CMSG_FORCE_SWIM_SPEED_CHANGE_ACK" },
    { SMSG_FORCE_MOVE_ROOT, "SMSG_FORCE_MOVE_ROOT" },
    { CMSG_FORCE_MOVE_ROOT_ACK, "CMSG_FORCE_MOVE_ROOT_ACK" },
    { SMSG_FORCE_MOVE_UNROOT, "SMSG_FORCE_MOVE_UNROOT" },
    { CMSG_FORCE_MOVE_UNROOT_ACK, "CMSG_FORCE_MOVE_UNROOT_ACK" },
    { MSG_MOVE_ROOT, "MSG_MOVE_ROOT" },
    { MSG_MOVE_UNROOT, "MSG_MOVE_UNROOT" },
    { MSG_MOVE_HEARTBEAT, "MSG_MOVE_HEARTBEAT" },
    { SMSG_MOVE_KNOCK_BACK, "SMSG_MOVE_KNOCK_BACK" },
    { CMSG_MOVE_KNOCK_BACK_ACK, "CMSG_MOVE_KNOCK_BACK_ACK" },
    { MSG_MOVE_KNOCK_BACK, "MSG_MOVE_KNOCK_BACK" },
    { SMSG_MOVE_FEATHER_FALL, "SMSG_MOVE_FEATHER_FALL" },
    { SMSG_MOVE_NORMAL_FALL, "SMSG_MOVE_NORMAL_FALL" },
    { SMSG_MOVE_SET_HOVER, "SMSG_MOVE_SET_HOVER" },
    { SMSG_MOVE_UNSET_HOVER, "SMSG_MOVE_UNSET_HOVER" },
    { CMSG_MOVE_HOVER_ACK, "CMSG_MOVE_HOVER_ACK" },
    { MSG_MOVE_HOVER, "MSG_MOVE_HOVER" },
    { CMSG_TRIGGER_CINEMATIC_CHEAT, "CMSG_TRIGGER_CINEMATIC_CHEAT" },
    { CMSG_OPENING_CINEMATIC, "CMSG_OPENING_CINEMATIC" },
    { SMSG_TRIGGER_CINEMATIC, "SMSG_TRIGGER_CINEMATIC" },
    { CMSG_NEXT_CINEMATIC_CAMERA, "CMSG_NEXT_CINEMATIC_CAMERA" },
    { CMSG_COMPLETE_CINEMATIC, "CMSG_COMPLETE_CINEMATIC" },
    { SMSG_TUTORIAL_FLAGS, "SMSG_TUTORIAL_FLAGS" },
    { CMSG_TUTORIAL_FLAG, "CMSG_TUTORIAL_FLAG" },
    { CMSG_TUTORIAL_CLEAR, "CMSG_TUTORIAL_CLEAR" },
    { CMSG_TUTORIAL_RESET, "CMSG_TUTORIAL_RESET" },
    { CMSG_STANDSTATECHANGE, "CMSG_STANDSTATECHANGE" },
    { CMSG_EMOTE, "CMSG_EMOTE" },
    { SMSG_EMOTE, "SMSG_EMOTE" },
    { CMSG_TEXT_EMOTE, "CMSG_TEXT_EMOTE" },
    { SMSG_TEXT_EMOTE, "SMSG_TEXT_EMOTE" },
    { CMSG_AUTOEQUIP_GROUND_ITEM, "CMSG_AUTOEQUIP_GROUND_ITEM" },
    { CMSG_AUTOSTORE_GROUND_ITEM, "CMSG_AUTOSTORE_GROUND_ITEM" },
    { CMSG_AUTOSTORE_LOOT_ITEM, "CMSG_AUTOSTORE_LOOT_ITEM" },
    { CMSG_STORE_LOOT_IN_SLOT, "CMSG_STORE_LOOT_IN_SLOT" },
    { CMSG_AUTOEQUIP_ITEM, "CMSG_AUTOEQUIP_ITEM" },
    { CMSG_AUTOSTORE_BAG_ITEM, "CMSG_AUTOSTORE_BAG_ITEM" },
    { CMSG_SWAP_ITEM, "CMSG_SWAP_ITEM" },
    { CMSG_SWAP_INV_ITEM, "CMSG_SWAP_INV_ITEM" },
    { CMSG_SPLIT_ITEM, "CMSG_SPLIT_ITEM" },
    { CMSG_AUTOEQUIP_ITEM_SLOT, "CMSG_AUTOEQUIP_ITEM_SLOT" },
    { OBSOLETE_DROP_ITEM, "OBSOLETE_DROP_ITEM" },
    { CMSG_DESTROYITEM, "CMSG_DESTROYITEM" },
    { SMSG_INVENTORY_CHANGE_FAILURE, "SMSG_INVENTORY_CHANGE_FAILURE" },
    { SMSG_OPEN_CONTAINER, "SMSG_OPEN_CONTAINER" },
    { CMSG_INSPECT, "CMSG_INSPECT" },
    { SMSG_INSPECT, "SMSG_INSPECT" },
    { CMSG_INITIATE_TRADE, "CMSG_INITIATE_TRADE" },
    { CMSG_BEGIN_TRADE, "CMSG_BEGIN_TRADE" },
    { CMSG_BUSY_TRADE, "CMSG_BUSY_TRADE" },
    { CMSG_IGNORE_TRADE, "CMSG_IGNORE_TRADE" },
    { CMSG_ACCEPT_TRADE, "CMSG_ACCEPT_TRADE" },
    { CMSG_UNACCEPT_TRADE, "CMSG_UNACCEPT_TRADE" },
    { CMSG_CANCEL_TRADE, "CMSG_CANCEL_TRADE" },
    { CMSG_SET_TRADE_ITEM, "CMSG_SET_TRADE_ITEM" },
    { CMSG_CLEAR_TRADE_ITEM, "CMSG_CLEAR_TRADE_ITEM" },
    { CMSG_SET_TRADE_GOLD, "CMSG_SET_TRADE_GOLD" },
    { SMSG_TRADE_STATUS, "SMSG_TRADE_STATUS" },
    { SMSG_TRADE_STATUS_EXTENDED, "SMSG_TRADE_STATUS_EXTENDED" },
    { SMSG_INITIALIZE_FACTIONS, "SMSG_INITIALIZE_FACTIONS" },
    { SMSG_SET_FACTION_VISIBLE, "SMSG_SET_FACTION_VISIBLE" },
    { SMSG_SET_FACTION_STANDING, "SMSG_SET_FACTION_STANDING" },
    { CMSG_SET_FACTION_ATWAR, "CMSG_SET_FACTION_ATWAR" },
    { CMSG_SET_FACTION_CHEAT, "CMSG_SET_FACTION_CHEAT" },
    { SMSG_SET_PROFICIENCY, "SMSG_SET_PROFICIENCY" },
    { CMSG_SET_ACTION_BUTTON, "CMSG_SET_ACTION_BUTTON" },
    { SMSG_ACTION_BUTTONS, "SMSG_ACTION_BUTTONS" },
    { SMSG_INITIAL_SPELLS, "SMSG_INITIAL_SPELLS" },
    { SMSG_LEARNED_SPELL, "SMSG_LEARNED_SPELL" },
    { SMSG_SUPERCEDED_SPELL, "SMSG_SUPERCEDED_SPELL" },
    { CMSG_NEW_SPELL_SLOT, "CMSG_NEW_SPELL_SLOT" },
    { CMSG_CAST_SPELL, "CMSG_CAST_SPELL" },
    { CMSG_CANCEL_CAST, "CMSG_CANCEL_CAST" },
    { SMSG_CAST_RESULT, "SMSG_CAST_RESULT" },
    { SMSG_SPELL_START, "SMSG_SPELL_START" },
    { SMSG_SPELL_GO, "SMSG_SPELL_GO" },
    { SMSG_SPELL_FAILURE, "SMSG_SPELL_FAILURE" },
    { SMSG_SPELL_COOLDOWN, "SMSG_SPELL_COOLDOWN" },
    { SMSG_COOLDOWN_EVENT, "SMSG_COOLDOWN_EVENT" },
    { CMSG_CANCEL_AURA, "CMSG_CANCEL_AURA" },
    { SMSG_UPDATE_AURA_DURATION, "SMSG_UPDATE_AURA_DURATION" },
    { SMSG_PET_CAST_FAILED, "SMSG_PET_CAST_FAILED" },
    { MSG_CHANNEL_START, "MSG_CHANNEL_START" },
    { MSG_CHANNEL_UPDATE, "MSG_CHANNEL_UPDATE" },
    { CMSG_CANCEL_CHANNELLING, "CMSG_CANCEL_CHANNELLING" },
    { SMSG_AI_REACTION, "SMSG_AI_REACTION" },
    { CMSG_SET_SELECTION, "CMSG_SET_SELECTION" },
    { CMSG_SET_TARGET_OBSOLETE, "CMSG_SET_TARGET_OBSOLETE" },
    { CMSG_UNUSED, "CMSG_UNUSED" },
    { CMSG_UNUSED2, "CMSG_UNUSED2" },
    { CMSG_ATTACKSWING, "CMSG_ATTACKSWING" },
    { CMSG_ATTACKSTOP, "CMSG_ATTACKSTOP" },
    { SMSG_ATTACKSTART, "SMSG_ATTACKSTART" },
    { SMSG_ATTACKSTOP, "SMSG_ATTACKSTOP" },
    { SMSG_ATTACKSWING_NOTINRANGE, "SMSG_ATTACKSWING_NOTINRANGE" },
    { SMSG_ATTACKSWING_BADFACING, "SMSG_ATTACKSWING_BADFACING" },
    { SMSG_ATTACKSWING_NOTSTANDING, "SMSG_ATTACKSWING_NOTSTANDING" },
    { SMSG_ATTACKSWING_DEADTARGET, "SMSG_ATTACKSWING_DEADTARGET" },
    { SMSG_ATTACKSWING_CANT_ATTACK, "SMSG_ATTACKSWING_CANT_ATTACK" },
    { SMSG_ATTACKERSTATEUPDATE, "SMSG_ATTACKERSTATEUPDATE" },
    { SMSG_VICTIMSTATEUPDATE_OBSOLETE, "SMSG_VICTIMSTATEUPDATE_OBSOLETE" },
    { SMSG_DAMAGE_DONE_OBSOLETE, "SMSG_DAMAGE_DONE_OBSOLETE" },
    { SMSG_DAMAGE_TAKEN_OBSOLETE, "SMSG_DAMAGE_TAKEN_OBSOLETE" },
    { SMSG_CANCEL_COMBAT, "SMSG_CANCEL_COMBAT" },
    { SMSG_PLAYER_COMBAT_XP_GAIN_OBSOLETE, "SMSG_PLAYER_COMBAT_XP_GAIN_OBSOLETE" },
    { SMSG_SPELLHEALLOG, "SMSG_SPELLHEALLOG" },
    { SMSG_SPELLENERGIZELOG, "SMSG_SPELLENERGIZELOG" },
    { CMSG_SHEATHE_OBSOLETE, "CMSG_SHEATHE_OBSOLETE" },
    { CMSG_SAVE_PLAYER, "CMSG_SAVE_PLAYER" },
    { CMSG_SETDEATHBINDPOINT, "CMSG_SETDEATHBINDPOINT" },
    { SMSG_BINDPOINTUPDATE, "SMSG_BINDPOINTUPDATE" },
    { CMSG_GETDEATHBINDZONE, "CMSG_GETDEATHBINDZONE" },
    { SMSG_BINDZONEREPLY, "SMSG_BINDZONEREPLY" },
    { SMSG_PLAYERBOUND, "SMSG_PLAYERBOUND" },
    { SMSG_CLIENT_CONTROL_UPDATE, "SMSG_CLIENT_CONTROL_UPDATE" },
    { CMSG_REPOP_REQUEST, "CMSG_REPOP_REQUEST" },
    { SMSG_RESURRECT_REQUEST, "SMSG_RESURRECT_REQUEST" },
    { CMSG_RESURRECT_RESPONSE, "CMSG_RESURRECT_RESPONSE" },
    { CMSG_LOOT, "CMSG_LOOT" },
    { CMSG_LOOT_MONEY, "CMSG_LOOT_MONEY" },
    { CMSG_LOOT_RELEASE, "CMSG_LOOT_RELEASE" },
    { SMSG_LOOT_RESPONSE, "SMSG_LOOT_RESPONSE" },
    { SMSG_LOOT_RELEASE_RESPONSE, "SMSG_LOOT_RELEASE_RESPONSE" },
    { SMSG_LOOT_REMOVED, "SMSG_LOOT_REMOVED" },
    { SMSG_LOOT_MONEY_NOTIFY, "SMSG_LOOT_MONEY_NOTIFY" },
    { SMSG_LOOT_ITEM_NOTIFY, "SMSG_LOOT_ITEM_NOTIFY" },
    { SMSG_LOOT_CLEAR_MONEY, "SMSG_LOOT_CLEAR_MONEY" },
    { SMSG_ITEM_PUSH_RESULT, "SMSG_ITEM_PUSH_RESULT" },
    { SMSG_DUEL_REQUESTED, "SMSG_DUEL_REQUESTED" },
    { SMSG_DUEL_OUTOFBOUNDS, "SMSG_DUEL_OUTOFBOUNDS" },
    { SMSG_DUEL_INBOUNDS, "SMSG_DUEL_INBOUNDS" },
    { SMSG_DUEL_COMPLETE, "SMSG_DUEL_COMPLETE" },
    { SMSG_DUEL_WINNER, "SMSG_DUEL_WINNER" },
    { CMSG_DUEL_ACCEPTED, "CMSG_DUEL_ACCEPTED" },
    { CMSG_DUEL_CANCELLED, "CMSG_DUEL_CANCELLED" },
    { SMSG_MOUNTRESULT, "SMSG_MOUNTRESULT" },
    { SMSG_DISMOUNTRESULT, "SMSG_DISMOUNTRESULT" },
    { SMSG_PUREMOUNT_CANCELLED_OBSOLETE, "SMSG_PUREMOUNT_CANCELLED_OBSOLETE" },
    { CMSG_MOUNTSPECIAL_ANIM, "CMSG_MOUNTSPECIAL_ANIM" },
    { SMSG_MOUNTSPECIAL_ANIM, "SMSG_MOUNTSPECIAL_ANIM" },
    { SMSG_PET_TAME_FAILURE, "SMSG_PET_TAME_FAILURE" },
    { CMSG_PET_SET_ACTION, "CMSG_PET_SET_ACTION" },
    { CMSG_PET_ACTION, "CMSG_PET_ACTION" },
    { CMSG_PET_ABANDON, "CMSG_PET_ABANDON" },
    { CMSG_PET_RENAME, "CMSG_PET_RENAME" },
    { SMSG_PET_NAME_INVALID, "SMSG_PET_NAME_INVALID" },
    { SMSG_PET_SPELLS, "SMSG_PET_SPELLS" },
    { SMSG_PET_MODE, "SMSG_PET_MODE" },
    { CMSG_GOSSIP_HELLO, "CMSG_GOSSIP_HELLO" },
    { CMSG_GOSSIP_SELECT_OPTION, "CMSG_GOSSIP_SELECT_OPTION" },
    { SMSG_GOSSIP_MESSAGE, "SMSG_GOSSIP_MESSAGE" },
    { SMSG_GOSSIP_COMPLETE, "SMSG_GOSSIP_COMPLETE" },
    { CMSG_NPC_TEXT_QUERY, "CMSG_NPC_TEXT_QUERY" },
    { SMSG_NPC_TEXT_UPDATE, "SMSG_NPC_TEXT_UPDATE" },
    { SMSG_NPC_WONT_TALK, "SMSG_NPC_WONT_TALK" },
    { CMSG_QUESTGIVER_STATUS_QUERY, "CMSG_QUESTGIVER_STATUS_QUERY" },
    { SMSG_QUESTGIVER_STATUS, "SMSG_QUESTGIVER_STATUS" },
    { CMSG_QUESTGIVER_HELLO, "CMSG_QUESTGIVER_HELLO" },
    { SMSG_QUESTGIVER_QUEST_LIST, "SMSG_QUESTGIVER_QUEST_LIST" },
    { CMSG_QUESTGIVER_QUERY_QUEST, "CMSG_QUESTGIVER_QUERY_QUEST" },
    { CMSG_QUESTGIVER_QUEST_AUTOLAUNCH, "CMSG_QUESTGIVER_QUEST_AUTOLAUNCH" },
    { SMSG_QUESTGIVER_QUEST_DETAILS, "SMSG_QUESTGIVER_QUEST_DETAILS" },
    { CMSG_QUESTGIVER_ACCEPT_QUEST, "CMSG_QUESTGIVER_ACCEPT_QUEST" },
    { CMSG_QUESTGIVER_COMPLETE_QUEST, "CMSG_QUESTGIVER_COMPLETE_QUEST" },
    { SMSG_QUESTGIVER_REQUEST_ITEMS, "SMSG_QUESTGIVER_REQUEST_ITEMS" },
    { CMSG_QUESTGIVER_REQUEST_REWARD, "CMSG_QUESTGIVER_REQUEST_REWARD" },
    { SMSG_QUESTGIVER_OFFER_REWARD, "SMSG_QUESTGIVER_OFFER_REWARD" },
    { CMSG_QUESTGIVER_CHOOSE_REWARD, "CMSG_QUESTGIVER_CHOOSE_REWARD" },
    { SMSG_QUESTGIVER_QUEST_INVALID, "SMSG_QUESTGIVER_QUEST_INVALID" },
    { CMSG_QUESTGIVER_CANCEL, "CMSG_QUESTGIVER_CANCEL" },
    { SMSG_QUESTGIVER_QUEST_COMPLETE, "SMSG_QUESTGIVER_QUEST_COMPLETE" },
    { SMSG_QUESTGIVER_QUEST_FAILED, "SMSG_QUESTGIVER_QUEST_FAILED" },
    { CMSG_QUESTLOG_SWAP_QUEST, "CMSG_QUESTLOG_SWAP_QUEST" },
    { CMSG_QUESTLOG_REMOVE_QUEST, "CMSG_QUESTLOG_REMOVE_QUEST" },
    { SMSG_QUESTLOG_FULL, "SMSG_QUESTLOG_FULL" },
    { SMSG_QUESTUPDATE_FAILED, "SMSG_QUESTUPDATE_FAILED" },
    { SMSG_QUESTUPDATE_FAILEDTIMER, "SMSG_QUESTUPDATE_FAILEDTIMER" },
    { SMSG_QUESTUPDATE_COMPLETE, "SMSG_QUESTUPDATE_COMPLETE" },
    { SMSG_QUESTUPDATE_ADD_KILL, "SMSG_QUESTUPDATE_ADD_KILL" },
    { SMSG_QUESTUPDATE_ADD_ITEM, "SMSG_QUESTUPDATE_ADD_ITEM" },
    { CMSG_QUEST_CONFIRM_ACCEPT, "CMSG_QUEST_CONFIRM_ACCEPT" },
    { SMSG_QUEST_CONFIRM_ACCEPT, "SMSG_QUEST_CONFIRM_ACCEPT" },
    { CMSG_PUSHQUESTTOPARTY, "CMSG_PUSHQUESTTOPARTY" },
    { CMSG_LIST_INVENTORY, "CMSG_LIST_INVENTORY" },
    { SMSG_LIST_INVENTORY, "SMSG_LIST_INVENTORY" },
    { CMSG_SELL_ITEM, "CMSG_SELL_ITEM" },
    { SMSG_SELL_ITEM, "SMSG_SELL_ITEM" },
    { CMSG_BUY_ITEM, "CMSG_BUY_ITEM" },
    { CMSG_BUY_ITEM_IN_SLOT, "CMSG_BUY_ITEM_IN_SLOT" },
    { SMSG_BUY_ITEM, "SMSG_BUY_ITEM" },
    { SMSG_BUY_FAILED, "SMSG_BUY_FAILED" },
    { CMSG_TAXICLEARALLNODES, "CMSG_TAXICLEARALLNODES" },
    { CMSG_TAXIENABLEALLNODES, "CMSG_TAXIENABLEALLNODES" },
    { CMSG_TAXISHOWNODES, "CMSG_TAXISHOWNODES" },
    { SMSG_SHOWTAXINODES, "SMSG_SHOWTAXINODES" },
    { CMSG_TAXINODE_STATUS_QUERY, "CMSG_TAXINODE_STATUS_QUERY" },
    { SMSG_TAXINODE_STATUS, "SMSG_TAXINODE_STATUS" },
    { CMSG_TAXIQUERYAVAILABLENODES, "CMSG_TAXIQUERYAVAILABLENODES" },
    { CMSG_ACTIVATETAXI, "CMSG_ACTIVATETAXI" },
    { SMSG_ACTIVATETAXIREPLY, "SMSG_ACTIVATETAXIREPLY" },
    { SMSG_NEW_TAXI_PATH, "SMSG_NEW_TAXI_PATH" },
    { CMSG_TRAINER_LIST, "CMSG_TRAINER_LIST" },
    { SMSG_TRAINER_LIST, "SMSG_TRAINER_LIST" },
    { CMSG_TRAINER_BUY_SPELL, "CMSG_TRAINER_BUY_SPELL" },
    { SMSG_TRAINER_BUY_SUCCEEDED, "SMSG_TRAINER_BUY_SUCCEEDED" },
    { SMSG_TRAINER_BUY_FAILED, "SMSG_TRAINER_BUY_FAILED" },
    { CMSG_BINDER_ACTIVATE, "CMSG_BINDER_ACTIVATE" },
    { SMSG_PLAYERBINDERROR, "SMSG_PLAYERBINDERROR" },
    { CMSG_BANKER_ACTIVATE, "CMSG_BANKER_ACTIVATE" },
    { SMSG_SHOW_BANK, "SMSG_SHOW_BANK" },
    { CMSG_BUY_BANK_SLOT, "CMSG_BUY_BANK_SLOT" },
    { SMSG_BUY_BANK_SLOT_RESULT, "SMSG_BUY_BANK_SLOT_RESULT" },
    { CMSG_PETITION_SHOWLIST, "CMSG_PETITION_SHOWLIST" },
    { SMSG_PETITION_SHOWLIST, "SMSG_PETITION_SHOWLIST" },
    { CMSG_PETITION_BUY, "CMSG_PETITION_BUY" },
    { CMSG_PETITION_SHOW_SIGNATURES, "CMSG_PETITION_SHOW_SIGNATURES" },
    { SMSG_PETITION_SHOW_SIGNATURES, "SMSG_PETITION_SHOW_SIGNATURES" },
    { CMSG_PETITION_SIGN, "CMSG_PETITION_SIGN" },
    { SMSG_PETITION_SIGN_RESULTS, "SMSG_PETITION_SIGN_RESULTS" },
    { MSG_PETITION_DECLINE, "MSG_PETITION_DECLINE" },
    { CMSG_OFFER_PETITION, "CMSG_OFFER_PETITION" },
    { CMSG_TURN_IN_PETITION, "CMSG_TURN_IN_PETITION" },
    { SMSG_TURN_IN_PETITION_RESULTS, "SMSG_TURN_IN_PETITION_RESULTS" },
    { CMSG_PETITION_QUERY, "CMSG_PETITION_QUERY" },
    { SMSG_PETITION_QUERY_RESPONSE, "SMSG_PETITION_QUERY_RESPONSE" },
    { SMSG_FISH_NOT_HOOKED, "SMSG_FISH_NOT_HOOKED" },
    { SMSG_FISH_ESCAPED, "SMSG_FISH_ESCAPED" },
    { CMSG_BUG, "CMSG_BUG" },
    { SMSG_NOTIFICATION, "SMSG_NOTIFICATION" },
    { CMSG_PLAYED_TIME, "CMSG_PLAYED_TIME" },
    { SMSG_PLAYED_TIME, "SMSG_PLAYED_TIME" },
    { CMSG_QUERY_TIME, "CMSG_QUERY_TIME" },
    { SMSG_QUERY_TIME_RESPONSE, "SMSG_QUERY_TIME_RESPONSE" },
    { SMSG_LOG_XPGAIN, "SMSG_LOG_XPGAIN" },
    { SMSG_AURACASTLOG, "SMSG_AURACASTLOG" },
    { CMSG_RECLAIM_CORPSE, "CMSG_RECLAIM_CORPSE" },
    { CMSG_WRAP_ITEM, "CMSG_WRAP_ITEM" },
    { SMSG_LEVELUP_INFO, "SMSG_LEVELUP_INFO" },
    { MSG_MINIMAP_PING, "MSG_MINIMAP_PING" },
    { SMSG_RESISTLOG, "SMSG_RESISTLOG" },
    { SMSG_ENCHANTMENTLOG, "SMSG_ENCHANTMENTLOG" },
    { CMSG_SET_SKILL_CHEAT, "CMSG_SET_SKILL_CHEAT" },
    { SMSG_START_MIRROR_TIMER, "SMSG_START_MIRROR_TIMER" },
    { SMSG_PAUSE_MIRROR_TIMER, "SMSG_PAUSE_MIRROR_TIMER" },
    { SMSG_STOP_MIRROR_TIMER, "SMSG_STOP_MIRROR_TIMER" },
    { CMSG_PING, "CMSG_PING" },
    { SMSG_PONG, "SMSG_PONG" },
    { SMSG_CLEAR_COOLDOWN, "SMSG_CLEAR_COOLDOWN" },
    { SMSG_GAMEOBJECT_PAGETEXT, "SMSG_GAMEOBJECT_PAGETEXT" },
    { CMSG_SETSHEATHED, "CMSG_SETSHEATHED" },
    { SMSG_COOLDOWN_CHEAT, "SMSG_COOLDOWN_CHEAT" },
    { SMSG_SPELL_DELAYED, "SMSG_SPELL_DELAYED" },
    { CMSG_PLAYER_MACRO_OBSOLETE, "CMSG_PLAYER_MACRO_OBSOLETE" },
    { SMSG_PLAYER_MACRO_OBSOLETE, "SMSG_PLAYER_MACRO_OBSOLETE" },
    { CMSG_GHOST, "CMSG_GHOST" },
    { CMSG_GM_INVIS, "CMSG_GM_INVIS" },
    { SMSG_INVALID_PROMOTION_CODE, "SMSG_INVALID_PROMOTION_CODE" },
    { MSG_GM_BIND_OTHER, "MSG_GM_BIND_OTHER" },
    { MSG_GM_SUMMON, "MSG_GM_SUMMON" },
    { SMSG_ITEM_TIME_UPDATE, "SMSG_ITEM_TIME_UPDATE" },
    { SMSG_ITEM_ENCHANT_TIME_UPDATE, "SMSG_ITEM_ENCHANT_TIME_UPDATE" },
    { SMSG_AUTH_CHALLENGE, "SMSG_AUTH_CHALLENGE" },
    { CMSG_AUTH_SESSION, "CMSG_AUTH_SESSION" },
    { SMSG_AUTH_RESPONSE, "SMSG_AUTH_RESPONSE" },
    { MSG_GM_SHOWLABEL, "MSG_GM_SHOWLABEL" },
    { CMSG_PET_CAST_SPELL, "CMSG_PET_CAST_SPELL" },
    { MSG_SAVE_GUILD_EMBLEM, "MSG_SAVE_GUILD_EMBLEM" },
    { MSG_TABARDVENDOR_ACTIVATE, "MSG_TABARDVENDOR_ACTIVATE" },
    { SMSG_PLAY_SPELL_VISUAL, "SMSG_PLAY_SPELL_VISUAL" },
    { CMSG_ZONEUPDATE, "CMSG_ZONEUPDATE" },
    { SMSG_PARTYKILLLOG, "SMSG_PARTYKILLLOG" },
    { SMSG_COMPRESSED_UPDATE_OBJECT, "SMSG_COMPRESSED_UPDATE_OBJECT" },
    { SMSG_PLAY_SPELL_IMPACT, "SMSG_PLAY_SPELL_IMPACT" },
    { SMSG_EXPLORATION_EXPERIENCE, "SMSG_EXPLORATION_EXPERIENCE" },
    { CMSG_GM_SET_SECURITY_GROUP, "CMSG_GM_SET_SECURITY_GROUP" },
    { CMSG_GM_NUKE, "CMSG_GM_NUKE" },
    { MSG_RANDOM_ROLL, "MSG_RANDOM_ROLL" },
    { SMSG_ENVIRONMENTALDAMAGELOG, "SMSG_ENVIRONMENTALDAMAGELOG" },
    { CMSG_RWHOIS_OBSOLETE, "CMSG_RWHOIS_OBSOLETE" },
    { SMSG_RWHOIS, "SMSG_RWHOIS" },
    { MSG_LOOKING_FOR_GROUP, "MSG_LOOKING_FOR_GROUP" },
    { CMSG_SET_LOOKING_FOR_GROUP, "CMSG_SET_LOOKING_FOR_GROUP" },
    { CMSG_UNLEARN_SPELL, "CMSG_UNLEARN_SPELL" },
    { CMSG_UNLEARN_SKILL, "CMSG_UNLEARN_SKILL" },
    { SMSG_REMOVED_SPELL, "SMSG_REMOVED_SPELL" },
    { CMSG_DECHARGE, "CMSG_DECHARGE" },
    { CMSG_GMTICKET_CREATE, "CMSG_GMTICKET_CREATE" },
    { SMSG_GMTICKET_CREATE, "SMSG_GMTICKET_CREATE" },
    { CMSG_GMTICKET_UPDATETEXT, "CMSG_GMTICKET_UPDATETEXT" },
    { SMSG_GMTICKET_UPDATETEXT, "SMSG_GMTICKET_UPDATETEXT" },
    { SMSG_ACCOUNT_DATA_TIMES, "SMSG_ACCOUNT_DATA_TIMES" },
    { CMSG_REQUEST_ACCOUNT_DATA, "CMSG_REQUEST_ACCOUNT_DATA" },
    { CMSG_UPDATE_ACCOUNT_DATA, "CMSG_UPDATE_ACCOUNT_DATA" },
    { SMSG_UPDATE_ACCOUNT_DATA, "SMSG_UPDATE_ACCOUNT_DATA" },
    { SMSG_CLEAR_FAR_SIGHT_IMMEDIATE, "SMSG_CLEAR_FAR_SIGHT_IMMEDIATE" },
    { SMSG_POWERGAINLOG_OBSOLETE, "SMSG_POWERGAINLOG_OBSOLETE" },
    { CMSG_GM_TEACH, "CMSG_GM_TEACH" },
    { CMSG_GM_CREATE_ITEM_TARGET, "CMSG_GM_CREATE_ITEM_TARGET" },
    { CMSG_GMTICKET_GETTICKET, "CMSG_GMTICKET_GETTICKET" },
    { SMSG_GMTICKET_GETTICKET, "SMSG_GMTICKET_GETTICKET" },
    { CMSG_UNLEARN_TALENTS, "CMSG_UNLEARN_TALENTS" },
    { SMSG_GAMEOBJECT_SPAWN_ANIM, "SMSG_GAMEOBJECT_SPAWN_ANIM" },
    { SMSG_GAMEOBJECT_DESPAWN_ANIM, "SMSG_GAMEOBJECT_DESPAWN_ANIM" },
    { MSG_CORPSE_QUERY, "MSG_CORPSE_QUERY" },
    { CMSG_GMTICKET_DELETETICKET, "CMSG_GMTICKET_DELETETICKET" },
    { SMSG_GMTICKET_DELETETICKET, "SMSG_GMTICKET_DELETETICKET" },
    { SMSG_CHAT_WRONG_FACTION, "SMSG_CHAT_WRONG_FACTION" },
    { CMSG_GMTICKET_SYSTEMSTATUS, "CMSG_GMTICKET_SYSTEMSTATUS" },
    { SMSG_GMTICKET_SYSTEMSTATUS, "SMSG_GMTICKET_SYSTEMSTATUS" },
    { CMSG_SPIRIT_HEALER_ACTIVATE, "CMSG_SPIRIT_HEALER_ACTIVATE" },
    { CMSG_SET_STAT_CHEAT, "CMSG_SET_STAT_CHEAT" },
    { SMSG_SET_REST_START, "SMSG_SET_REST_START" },
    { CMSG_SKILL_BUY_STEP, "CMSG_SKILL_BUY_STEP" },
    { CMSG_SKILL_BUY_RANK, "CMSG_SKILL_BUY_RANK" },
    { CMSG_XP_CHEAT, "CMSG_XP_CHEAT" },
    { SMSG_SPIRIT_HEALER_CONFIRM, "SMSG_SPIRIT_HEALER_CONFIRM" },
    { CMSG_CHARACTER_POINT_CHEAT, "CMSG_CHARACTER_POINT_CHEAT" },
    { SMSG_GOSSIP_POI, "SMSG_GOSSIP_POI" },
    { CMSG_CHAT_IGNORED, "CMSG_CHAT_IGNORED" },
    { CMSG_GM_VISION, "CMSG_GM_VISION" },
    { CMSG_SERVER_COMMAND, "CMSG_SERVER_COMMAND" },
    { CMSG_GM_SILENCE, "CMSG_GM_SILENCE" },
    { CMSG_GM_REVEALTO, "CMSG_GM_REVEALTO" },
    { CMSG_GM_RESURRECT, "CMSG_GM_RESURRECT" },
    { CMSG_GM_SUMMONMOB, "CMSG_GM_SUMMONMOB" },
    { CMSG_GM_MOVECORPSE, "CMSG_GM_MOVECORPSE" },
    { CMSG_GM_FREEZE, "CMSG_GM_FREEZE" },
    { CMSG_GM_UBERINVIS, "CMSG_GM_UBERINVIS" },
    { CMSG_GM_REQUEST_PLAYER_INFO, "CMSG_GM_REQUEST_PLAYER_INFO" },
    { SMSG_GM_PLAYER_INFO, "SMSG_GM_PLAYER_INFO" },
    { CMSG_GUILD_RANK, "CMSG_GUILD_RANK" },
    { CMSG_GUILD_ADD_RANK, "CMSG_GUILD_ADD_RANK" },
    { CMSG_GUILD_DEL_RANK, "CMSG_GUILD_DEL_RANK" },
    { CMSG_GUILD_SET_PUBLIC_NOTE, "CMSG_GUILD_SET_PUBLIC_NOTE" },
    { CMSG_GUILD_SET_OFFICER_NOTE, "CMSG_GUILD_SET_OFFICER_NOTE" },
    { SMSG_LOGIN_VERIFY_WORLD, "SMSG_LOGIN_VERIFY_WORLD" },
    { CMSG_CLEAR_EXPLORATION, "CMSG_CLEAR_EXPLORATION" },
    { CMSG_SEND_MAIL, "CMSG_SEND_MAIL" },
    { SMSG_SEND_MAIL_RESULT, "SMSG_SEND_MAIL_RESULT" },
    { CMSG_GET_MAIL_LIST, "CMSG_GET_MAIL_LIST" },
    { SMSG_MAIL_LIST_RESULT, "SMSG_MAIL_LIST_RESULT" },
    { CMSG_BATTLEFIELD_LIST, "CMSG_BATTLEFIELD_LIST" },
    { SMSG_BATTLEFIELD_LIST, "SMSG_BATTLEFIELD_LIST" },
    { CMSG_BATTLEFIELD_JOIN, "CMSG_BATTLEFIELD_JOIN" },
    { SMSG_BATTLEFIELD_WIN_OBSOLETE, "SMSG_BATTLEFIELD_WIN_OBSOLETE" },
    { SMSG_BATTLEFIELD_LOSE_OBSOLETE, "SMSG_BATTLEFIELD_LOSE_OBSOLETE" },
    { CMSG_TAXICLEARNODE, "CMSG_TAXICLEARNODE" },
    { CMSG_TAXIENABLENODE, "CMSG_TAXIENABLENODE" },
    { CMSG_ITEM_TEXT_QUERY, "CMSG_ITEM_TEXT_QUERY" },
    { SMSG_ITEM_TEXT_QUERY_RESPONSE, "SMSG_ITEM_TEXT_QUERY_RESPONSE" },
    { CMSG_MAIL_TAKE_MONEY, "CMSG_MAIL_TAKE_MONEY" },
    { CMSG_MAIL_TAKE_ITEM, "CMSG_MAIL_TAKE_ITEM" },
    { CMSG_MAIL_MARK_AS_READ, "CMSG_MAIL_MARK_AS_READ" },
    { CMSG_MAIL_RETURN_TO_SENDER, "CMSG_MAIL_RETURN_TO_SENDER" },
    { CMSG_MAIL_DELETE, "CMSG_MAIL_DELETE" },
    { CMSG_MAIL_CREATE_TEXT_ITEM, "CMSG_MAIL_CREATE_TEXT_ITEM" },
    { SMSG_SPELLLOGMISS, "SMSG_SPELLLOGMISS" },
    { SMSG_SPELLLOGEXECUTE, "SMSG_SPELLLOGEXECUTE" },
    { SMSG_DEBUGAURAPROC, "SMSG_DEBUGAURAPROC" },
    { SMSG_PERIODICAURALOG, "SMSG_PERIODICAURALOG" },
    { SMSG_SPELLDAMAGESHIELD, "SMSG_SPELLDAMAGESHIELD" },
    { SMSG_SPELLNONMELEEDAMAGELOG, "SMSG_SPELLNONMELEEDAMAGELOG" },
    { CMSG_LEARN_TALENT, "CMSG_LEARN_TALENT" },
    { SMSG_RESURRECT_FAILED, "SMSG_RESURRECT_FAILED" },
    { CMSG_TOGGLE_PVP, "CMSG_TOGGLE_PVP" },
    { SMSG_ZONE_UNDER_ATTACK, "SMSG_ZONE_UNDER_ATTACK" },
    { MSG_AUCTION_HELLO, "MSG_AUCTION_HELLO" },
    { CMSG_AUCTION_SELL_ITEM, "CMSG_AUCTION_SELL_ITEM" },
    { CMSG_AUCTION_REMOVE_ITEM, "CMSG_AUCTION_REMOVE_ITEM" },
    { CMSG_AUCTION_LIST_ITEMS, "CMSG_AUCTION_LIST_ITEMS" },
    { CMSG_AUCTION_LIST_OWNER_ITEMS, "CMSG_AUCTION_LIST_OWNER_ITEMS" },
    { CMSG_AUCTION_PLACE_BID, "CMSG_AUCTION_PLACE_BID" },
    { SMSG_AUCTION_COMMAND_RESULT, "SMSG_AUCTION_COMMAND_RESULT" },
    { SMSG_AUCTION_LIST_RESULT, "SMSG_AUCTION_LIST_RESULT" },
    { SMSG_AUCTION_OWNER_LIST_RESULT, "SMSG_AUCTION_OWNER_LIST_RESULT" },
    { SMSG_AUCTION_BIDDER_NOTIFICATION, "SMSG_AUCTION_BIDDER_NOTIFICATION" },
    { SMSG_AUCTION_OWNER_NOTIFICATION, "SMSG_AUCTION_OWNER_NOTIFICATION" },
    { SMSG_PROCRESIST, "SMSG_PROCRESIST" },
    { SMSG_STANDSTATE_CHANGE_FAILURE_OBSOLETE, "SMSG_STANDSTATE_CHANGE_FAILURE_OBSOLETE" },
    { SMSG_DISPEL_FAILED, "SMSG_DISPEL_FAILED" },
    { SMSG_SPELLORDAMAGE_IMMUNE, "SMSG_SPELLORDAMAGE_IMMUNE" },
    { CMSG_AUCTION_LIST_BIDDER_ITEMS, "CMSG_AUCTION_LIST_BIDDER_ITEMS" },
    { SMSG_AUCTION_BIDDER_LIST_RESULT, "SMSG_AUCTION_BIDDER_LIST_RESULT" },
    { SMSG_SET_FLAT_SPELL_MODIFIER, "SMSG_SET_FLAT_SPELL_MODIFIER" },
    { SMSG_SET_PCT_SPELL_MODIFIER, "SMSG_SET_PCT_SPELL_MODIFIER" },
    { CMSG_SET_AMMO, "CMSG_SET_AMMO" },
    { SMSG_CORPSE_RECLAIM_DELAY, "SMSG_CORPSE_RECLAIM_DELAY" },
    { CMSG_SET_ACTIVE_MOVER, "CMSG_SET_ACTIVE_MOVER" },
    { CMSG_PET_CANCEL_AURA, "CMSG_PET_CANCEL_AURA" },
    { CMSG_PLAYER_AI_CHEAT, "CMSG_PLAYER_AI_CHEAT" },
    { CMSG_CANCEL_AUTO_REPEAT_SPELL, "CMSG_CANCEL_AUTO_REPEAT_SPELL" },
    { MSG_GM_ACCOUNT_ONLINE, "MSG_GM_ACCOUNT_ONLINE" },
    { MSG_LIST_STABLED_PETS, "MSG_LIST_STABLED_PETS" },
    { CMSG_STABLE_PET, "CMSG_STABLE_PET" },
    { CMSG_UNSTABLE_PET, "CMSG_UNSTABLE_PET" },
    { CMSG_BUY_STABLE_SLOT, "CMSG_BUY_STABLE_SLOT" },
    { SMSG_STABLE_RESULT, "SMSG_STABLE_RESULT" },
    { CMSG_STABLE_REVIVE_PET, "CMSG_STABLE_REVIVE_PET" },
    { CMSG_STABLE_SWAP_PET, "CMSG_STABLE_SWAP_PET" },
    { MSG_QUEST_PUSH_RESULT, "MSG_QUEST_PUSH_RESULT" },
    { SMSG_PLAY_MUSIC, "SMSG_PLAY_MUSIC" },
    { SMSG_PLAY_OBJECT_SOUND, "SMSG_PLAY_OBJECT_SOUND" },
    { CMSG_REQUEST_PET_INFO, "CMSG_REQUEST_PET_INFO" },
    { CMSG_FAR_SIGHT, "CMSG_FAR_SIGHT" },
    { SMSG_SPELLDISPELLOG, "SMSG_SPELLDISPELLOG" },
    { SMSG_DAMAGE_CALC_LOG, "SMSG_DAMAGE_CALC_LOG" },
    { CMSG_ENABLE_DAMAGE_LOG, "CMSG_ENABLE_DAMAGE_LOG" },
    { CMSG_GROUP_CHANGE_SUB_GROUP, "CMSG_GROUP_CHANGE_SUB_GROUP" },
    { CMSG_REQUEST_PARTY_MEMBER_STATS, "CMSG_REQUEST_PARTY_MEMBER_STATS" },
    { CMSG_GROUP_SWAP_SUB_GROUP, "CMSG_GROUP_SWAP_SUB_GROUP" },
    { CMSG_RESET_FACTION_CHEAT, "CMSG_RESET_FACTION_CHEAT" },
    { CMSG_AUTOSTORE_BANK_ITEM, "CMSG_AUTOSTORE_BANK_ITEM" },
    { CMSG_AUTOBANK_ITEM, "CMSG_AUTOBANK_ITEM" },
    { MSG_QUERY_NEXT_MAIL_TIME, "MSG_QUERY_NEXT_MAIL_TIME" },
    { SMSG_RECEIVED_MAIL, "SMSG_RECEIVED_MAIL" },
    { SMSG_RAID_GROUP_ONLY, "SMSG_RAID_GROUP_ONLY" },
    { CMSG_SET_DURABILITY_CHEAT, "CMSG_SET_DURABILITY_CHEAT" },
    { CMSG_SET_PVP_RANK_CHEAT, "CMSG_SET_PVP_RANK_CHEAT" },
    { CMSG_ADD_PVP_MEDAL_CHEAT, "CMSG_ADD_PVP_MEDAL_CHEAT" },
    { CMSG_DEL_PVP_MEDAL_CHEAT, "CMSG_DEL_PVP_MEDAL_CHEAT" },
    { CMSG_SET_PVP_TITLE, "CMSG_SET_PVP_TITLE" },
    { SMSG_PVP_CREDIT, "SMSG_PVP_CREDIT" },
    { SMSG_AUCTION_REMOVED_NOTIFICATION, "SMSG_AUCTION_REMOVED_NOTIFICATION" },
    { CMSG_GROUP_RAID_CONVERT, "CMSG_GROUP_RAID_CONVERT" },
    { CMSG_GROUP_ASSISTANT_LEADER, "CMSG_GROUP_ASSISTANT_LEADER" },
    { CMSG_BUYBACK_ITEM, "CMSG_BUYBACK_ITEM" },
    { SMSG_SERVER_MESSAGE, "SMSG_SERVER_MESSAGE" },
    { CMSG_MEETINGSTONE_JOIN, "CMSG_MEETINGSTONE_JOIN" },
    { CMSG_MEETINGSTONE_LEAVE, "CMSG_MEETINGSTONE_LEAVE" },
    { CMSG_MEETINGSTONE_CHEAT, "CMSG_MEETINGSTONE_CHEAT" },
    { SMSG_MEETINGSTONE_SETQUEUE, "SMSG_MEETINGSTONE_SETQUEUE" },
    { CMSG_MEETINGSTONE_INFO, "CMSG_MEETINGSTONE_INFO" },
    { SMSG_MEETINGSTONE_COMPLETE, "SMSG_MEETINGSTONE_COMPLETE" },
    { SMSG_MEETINGSTONE_IN_PROGRESS, "SMSG_MEETINGSTONE_IN_PROGRESS" },
    { SMSG_MEETINGSTONE_MEMBER_ADDED, "SMSG_MEETINGSTONE_MEMBER_ADDED" },
    { CMSG_GMTICKETSYSTEM_TOGGLE, "CMSG_GMTICKETSYSTEM_TOGGLE" },
    { CMSG_CANCEL_GROWTH_AURA, "CMSG_CANCEL_GROWTH_AURA" },
    { SMSG_CANCEL_AUTO_REPEAT, "SMSG_CANCEL_AUTO_REPEAT" },
    { SMSG_STANDSTATE_UPDATE, "SMSG_STANDSTATE_UPDATE" },
    { SMSG_LOOT_ALL_PASSED, "SMSG_LOOT_ALL_PASSED" },
    { SMSG_LOOT_ROLL_WON, "SMSG_LOOT_ROLL_WON" },
    { CMSG_LOOT_ROLL, "CMSG_LOOT_ROLL" },
    { SMSG_LOOT_START_ROLL, "SMSG_LOOT_START_ROLL" },
    { SMSG_LOOT_ROLL, "SMSG_LOOT_ROLL" },
    { CMSG_LOOT_MASTER_GIVE, "CMSG_LOOT_MASTER_GIVE" },
    { SMSG_LOOT_MASTER_LIST, "SMSG_LOOT_MASTER_LIST" },
    { SMSG_SET_FORCED_REACTIONS, "SMSG_SET_FORCED_REACTIONS" },
    { SMSG_SPELL_FAILED_OTHER, "SMSG_SPELL_FAILED_OTHER" },
    { SMSG_GAMEOBJECT_RESET_STATE, "SMSG_GAMEOBJECT_RESET_STATE" },
    { CMSG_REPAIR_ITEM, "CMSG_REPAIR_ITEM" },
    { SMSG_CHAT_PLAYER_NOT_FOUND, "SMSG_CHAT_PLAYER_NOT_FOUND" },
    { MSG_TALENT_WIPE_CONFIRM, "MSG_TALENT_WIPE_CONFIRM" },
    { SMSG_SUMMON_REQUEST, "SMSG_SUMMON_REQUEST" },
    { CMSG_SUMMON_RESPONSE, "CMSG_SUMMON_RESPONSE" },
    { MSG_MOVE_TOGGLE_GRAVITY_CHEAT, "MSG_MOVE_TOGGLE_GRAVITY_CHEAT" },
    { SMSG_MONSTER_MOVE_TRANSPORT, "SMSG_MONSTER_MOVE_TRANSPORT" },
    { SMSG_PET_BROKEN, "SMSG_PET_BROKEN" },
    { MSG_MOVE_FEATHER_FALL, "MSG_MOVE_FEATHER_FALL" },
    { MSG_MOVE_WATER_WALK, "MSG_MOVE_WATER_WALK" },
    { CMSG_SERVER_BROADCAST, "CMSG_SERVER_BROADCAST" },
    { CMSG_SELF_RES, "CMSG_SELF_RES" },
    { SMSG_FEIGN_DEATH_RESISTED, "SMSG_FEIGN_DEATH_RESISTED" },
    { CMSG_RUN_SCRIPT, "CMSG_RUN_SCRIPT" },
    { SMSG_SCRIPT_MESSAGE, "SMSG_SCRIPT_MESSAGE" },
    { SMSG_DUEL_COUNTDOWN, "SMSG_DUEL_COUNTDOWN" },
    { SMSG_AREA_TRIGGER_MESSAGE, "SMSG_AREA_TRIGGER_MESSAGE" },
    { CMSG_TOGGLE_HELM, "CMSG_TOGGLE_HELM" },
    { CMSG_TOGGLE_CLOAK, "CMSG_TOGGLE_CLOAK" },
    { SMSG_MEETINGSTONE_JOINFAILED, "SMSG_MEETINGSTONE_JOINFAILED" },
    { SMSG_PLAYER_SKINNED, "SMSG_PLAYER_SKINNED" },
    { SMSG_DURABILITY_DAMAGE_DEATH, "SMSG_DURABILITY_DAMAGE_DEATH" },
    { CMSG_SET_EXPLORATION, "CMSG_SET_EXPLORATION" },
    { CMSG_SET_ACTIONBAR_TOGGLES, "CMSG_SET_ACTIONBAR_TOGGLES" },
    { UMSG_DELETE_GUILD_CHARTER, "UMSG_DELETE_GUILD_CHARTER" },
    { MSG_PETITION_RENAME, "MSG_PETITION_RENAME" },
    { SMSG_INIT_WORLD_STATES, "SMSG_INIT_WORLD_STATES" },
    { SMSG_UPDATE_WORLD_STATE, "SMSG_UPDATE_WORLD_STATE" },
    { CMSG_ITEM_NAME_QUERY, "CMSG_ITEM_NAME_QUERY" },
    { SMSG_ITEM_NAME_QUERY_RESPONSE, "SMSG_ITEM_NAME_QUERY_RESPONSE" },
    { SMSG_PET_ACTION_FEEDBACK, "SMSG_PET_ACTION_FEEDBACK" },
    { CMSG_CHAR_RENAME, "CMSG_CHAR_RENAME" },
    { SMSG_CHAR_RENAME, "SMSG_CHAR_RENAME" },
    { CMSG_MOVE_SPLINE_DONE, "CMSG_MOVE_SPLINE_DONE" },
    { CMSG_MOVE_FALL_RESET, "CMSG_MOVE_FALL_RESET" },
    { SMSG_INSTANCE_SAVE_CREATED, "SMSG_INSTANCE_SAVE_CREATED" },
    { SMSG_RAID_INSTANCE_INFO, "SMSG_RAID_INSTANCE_INFO" },
    { CMSG_REQUEST_RAID_INFO, "CMSG_REQUEST_RAID_INFO" },
    { CMSG_MOVE_TIME_SKIPPED, "CMSG_MOVE_TIME_SKIPPED" },
    { CMSG_MOVE_FEATHER_FALL_ACK, "CMSG_MOVE_FEATHER_FALL_ACK" },
    { CMSG_MOVE_WATER_WALK_ACK, "CMSG_MOVE_WATER_WALK_ACK" },
    { CMSG_MOVE_NOT_ACTIVE_MOVER, "CMSG_MOVE_NOT_ACTIVE_MOVER" },
    { SMSG_PLAY_SOUND, "SMSG_PLAY_SOUND" },
    { CMSG_BATTLEFIELD_STATUS, "CMSG_BATTLEFIELD_STATUS" },
    { SMSG_BATTLEFIELD_STATUS, "SMSG_BATTLEFIELD_STATUS" },
    { CMSG_BATTLEFIELD_PORT, "CMSG_BATTLEFIELD_PORT" },
    { MSG_INSPECT_HONOR_STATS, "MSG_INSPECT_HONOR_STATS" },
    { CMSG_BATTLEMASTER_HELLO, "CMSG_BATTLEMASTER_HELLO" },
    { CMSG_MOVE_START_SWIM_CHEAT, "CMSG_MOVE_START_SWIM_CHEAT" },
    { CMSG_MOVE_STOP_SWIM_CHEAT, "CMSG_MOVE_STOP_SWIM_CHEAT" },
    { SMSG_FORCE_WALK_SPEED_CHANGE, "SMSG_FORCE_WALK_SPEED_CHANGE" },
    { CMSG_FORCE_WALK_SPEED_CHANGE_ACK, "CMSG_FORCE_WALK_SPEED_CHANGE_ACK" },
    { SMSG_FORCE_SWIM_BACK_SPEED_CHANGE, "SMSG_FORCE_SWIM_BACK_SPEED_CHANGE" },
    { CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK, "CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK" },
    { SMSG_FORCE_TURN_RATE_CHANGE, "SMSG_FORCE_TURN_RATE_CHANGE" },
    { CMSG_FORCE_TURN_RATE_CHANGE_ACK, "CMSG_FORCE_TURN_RATE_CHANGE_ACK" },
    { MSG_PVP_LOG_DATA, "MSG_PVP_LOG_DATA" },
    { CMSG_LEAVE_BATTLEFIELD, "CMSG_LEAVE_BATTLEFIELD" },
    { CMSG_AREA_SPIRIT_HEALER_QUERY, "CMSG_AREA_SPIRIT_HEALER_QUERY" },
    { CMSG_AREA_SPIRIT_HEALER_QUEUE, "CMSG_AREA_SPIRIT_HEALER_QUEUE" },
    { SMSG_AREA_SPIRIT_HEALER_TIME, "SMSG_AREA_SPIRIT_HEALER_TIME" },
    { CMSG_GM_UNTEACH, "CMSG_GM_UNTEACH" },
    { SMSG_WARDEN_DATA, "SMSG_WARDEN_DATA" },
    { CMSG_WARDEN_DATA, "CMSG_WARDEN_DATA" },
    { SMSG_GROUP_JOINED_BATTLEGROUND, "SMSG_GROUP_JOINED_BATTLEGROUND" },
    { MSG_BATTLEGROUND_PLAYER_POSITIONS, "MSG_BATTLEGROUND_PLAYER_POSITIONS" },
    { CMSG_PET_STOP_ATTACK, "CMSG_PET_STOP_ATTACK" },
    { SMSG_BINDER_CONFIRM, "SMSG_BINDER_CONFIRM" },
    { SMSG_BATTLEGROUND_PLAYER_JOINED, "SMSG_BATTLEGROUND_PLAYER_JOINED" },
    { SMSG_BATTLEGROUND_PLAYER_LEFT, "SMSG_BATTLEGROUND_PLAYER_LEFT" },
    { CMSG_BATTLEMASTER_JOIN, "CMSG_BATTLEMASTER_JOIN" },
    { SMSG_ADDON_INFO, "SMSG_ADDON_INFO" },
    { CMSG_PET_UNLEARN, "CMSG_PET_UNLEARN" },
    { SMSG_PET_UNLEARN_CONFIRM, "SMSG_PET_UNLEARN_CONFIRM" },
    { SMSG_PARTY_MEMBER_STATS_FULL, "SMSG_PARTY_MEMBER_STATS_FULL" },
    { CMSG_PET_SPELL_AUTOCAST, "CMSG_PET_SPELL_AUTOCAST" },
    { SMSG_WEATHER, "SMSG_WEATHER" },
    { SMSG_PLAY_TIME_WARNING, "SMSG_PLAY_TIME_WARNING" },
    { SMSG_MINIGAME_SETUP, "SMSG_MINIGAME_SETUP" },
    { SMSG_MINIGAME_STATE, "SMSG_MINIGAME_STATE" },
    { CMSG_MINIGAME_MOVE, "CMSG_MINIGAME_MOVE" },
    { SMSG_MINIGAME_MOVE_FAILED, "SMSG_MINIGAME_MOVE_FAILED" },
    { SMSG_RAID_INSTANCE_MESSAGE, "SMSG_RAID_INSTANCE_MESSAGE" },
    { SMSG_COMPRESSED_MOVES, "SMSG_COMPRESSED_MOVES" },
    { CMSG_GUILD_INFO_TEXT, "CMSG_GUILD_INFO_TEXT" },
    { SMSG_CHAT_RESTRICTED, "SMSG_CHAT_RESTRICTED" },
    { SMSG_SPLINE_SET_RUN_SPEED, "SMSG_SPLINE_SET_RUN_SPEED" },
    { SMSG_SPLINE_SET_RUN_BACK_SPEED, "SMSG_SPLINE_SET_RUN_BACK_SPEED" },
    { SMSG_SPLINE_SET_SWIM_SPEED, "SMSG_SPLINE_SET_SWIM_SPEED" },
    { SMSG_SPLINE_SET_WALK_SPEED, "SMSG_SPLINE_SET_WALK_SPEED" },
    { SMSG_SPLINE_SET_SWIM_BACK_SPEED, "SMSG_SPLINE_SET_SWIM_BACK_SPEED" },
    { SMSG_SPLINE_SET_TURN_RATE, "SMSG_SPLINE_SET_TURN_RATE" },
    { SMSG_SPLINE_MOVE_UNROOT, "SMSG_SPLINE_MOVE_UNROOT" },
    { SMSG_SPLINE_MOVE_FEATHER_FALL, "SMSG_SPLINE_MOVE_FEATHER_FALL" },
    { SMSG_SPLINE_MOVE_NORMAL_FALL, "SMSG_SPLINE_MOVE_NORMAL_FALL" },
    { SMSG_SPLINE_MOVE_SET_HOVER, "SMSG_SPLINE_MOVE_SET_HOVER" },
    { SMSG_SPLINE_MOVE_UNSET_HOVER, "SMSG_SPLINE_MOVE_UNSET_HOVER" },
    { SMSG_SPLINE_MOVE_WATER_WALK, "SMSG_SPLINE_MOVE_WATER_WALK" },
    { SMSG_SPLINE_MOVE_LAND_WALK, "SMSG_SPLINE_MOVE_LAND_WALK" },
    { SMSG_SPLINE_MOVE_START_SWIM, "SMSG_SPLINE_MOVE_START_SWIM" },
    { SMSG_SPLINE_MOVE_STOP_SWIM, "SMSG_SPLINE_MOVE_STOP_SWIM" },
    { SMSG_SPLINE_MOVE_SET_RUN_MODE, "SMSG_SPLINE_MOVE_SET_RUN_MODE" },
    { SMSG_SPLINE_MOVE_SET_WALK_MODE, "SMSG_SPLINE_MOVE_SET_WALK_MODE" },
    { CMSG_GM_NUKE_ACCOUNT, "CMSG_GM_NUKE_ACCOUNT" },
    { MSG_GM_DESTROY_CORPSE, "MSG_GM_DESTROY_CORPSE" },
    { CMSG_GM_DESTROY_ONLINE_CORPSE, "CMSG_GM_DESTROY_ONLINE_CORPSE" },
    { CMSG_ACTIVATETAXIEXPRESS, "CMSG_ACTIVATETAXIEXPRESS" },
    { SMSG_SET_FACTION_ATWAR, "SMSG_SET_FACTION_ATWAR" },
    { SMSG_GAMETIMEBIAS_SET, "SMSG_GAMETIMEBIAS_SET" },
    { CMSG_DEBUG_ACTIONS_START, "CMSG_DEBUG_ACTIONS_START" },
    { CMSG_DEBUG_ACTIONS_STOP, "CMSG_DEBUG_ACTIONS_STOP" },
    { CMSG_SET_FACTION_INACTIVE, "CMSG_SET_FACTION_INACTIVE" },
    { CMSG_SET_WATCHED_FACTION, "CMSG_SET_WATCHED_FACTION" },
    { MSG_MOVE_TIME_SKIPPED, "MSG_MOVE_TIME_SKIPPED" },
    { SMSG_SPLINE_MOVE_ROOT, "SMSG_SPLINE_MOVE_ROOT" },
    { CMSG_SET_EXPLORATION_ALL, "CMSG_SET_EXPLORATION_ALL" },
    { SMSG_INVALIDATE_PLAYER, "SMSG_INVALIDATE_PLAYER" },
    { CMSG_RESET_INSTANCES, "CMSG_RESET_INSTANCES" },
    { SMSG_INSTANCE_RESET, "SMSG_INSTANCE_RESET" },
    { SMSG_INSTANCE_RESET_FAILED, "SMSG_INSTANCE_RESET_FAILED" },
    { SMSG_UPDATE_LAST_INSTANCE, "SMSG_UPDATE_LAST_INSTANCE" },
    { MSG_RAID_TARGET_UPDATE, "MSG_RAID_TARGET_UPDATE" },
    { MSG_RAID_READY_CHECK, "MSG_RAID_READY_CHECK" },
    { CMSG_LUA_USAGE, "CMSG_LUA_USAGE" },
    { SMSG_PET_ACTION_SOUND, "SMSG_PET_ACTION_SOUND" },
    { SMSG_PET_DISMISS_SOUND, "SMSG_PET_DISMISS_SOUND" },
    { SMSG_GHOSTEE_GONE, "SMSG_GHOSTEE_GONE" },
    { CMSG_GM_UPDATE_TICKET_STATUS, "CMSG_GM_UPDATE_TICKET_STATUS" },
    { SMSG_GM_TICKET_STATUS_UPDATE, "SMSG_GM_TICKET_STATUS_UPDATE" },
    { CMSG_GMSURVEY_SUBMIT, "CMSG_GMSURVEY_SUBMIT" },
    { SMSG_UPDATE_INSTANCE_OWNERSHIP, "SMSG_UPDATE_INSTANCE_OWNERSHIP" },
    { CMSG_IGNORE_KNOCKBACK_CHEAT, "CMSG_IGNORE_KNOCKBACK_CHEAT" },
    { SMSG_CHAT_PLAYER_AMBIGUOUS, "SMSG_CHAT_PLAYER_AMBIGUOUS" },
    { MSG_DELAY_GHOST_TELEPORT, "MSG_DELAY_GHOST_TELEPORT" },
    { SMSG_SPELLINSTAKILLLOG, "SMSG_SPELLINSTAKILLLOG" },
    { SMSG_SPELL_UPDATE_CHAIN_TARGETS, "SMSG_SPELL_UPDATE_CHAIN_TARGETS" },
    { CMSG_CHAT_FILTERED, "CMSG_CHAT_FILTERED" },
    { SMSG_EXPECTED_SPAM_RECORDS, "SMSG_EXPECTED_SPAM_RECORDS" },
    { SMSG_SPELLSTEALLOG, "SMSG_SPELLSTEALLOG" },
    { CMSG_LOTTERY_QUERY_OBSOLETE, "CMSG_LOTTERY_QUERY_OBSOLETE" },
    { SMSG_LOTTERY_QUERY_RESULT_OBSOLETE, "SMSG_LOTTERY_QUERY_RESULT_OBSOLETE" },
    { CMSG_BUY_LOTTERY_TICKET_OBSOLETE, "CMSG_BUY_LOTTERY_TICKET_OBSOLETE" },
    { SMSG_LOTTERY_RESULT_OBSOLETE, "SMSG_LOTTERY_RESULT_OBSOLETE" },
    { SMSG_CHARACTER_PROFILE, "SMSG_CHARACTER_PROFILE" },
    { SMSG_CHARACTER_PROFILE_REALM_CONNECTED, "SMSG_CHARACTER_PROFILE_REALM_CONNECTED" },
    { SMSG_DEFENSE_MESSAGE, "SMSG_DEFENSE_MESSAGE" },
    { MSG_GM_RESETINSTANCELIMIT, "MSG_GM_RESETINSTANCELIMIT" },
    { SMSG_MOTD, "SMSG_MOTD" },
    { SMSG_MOVE_SET_FLIGHT, "SMSG_MOVE_SET_FLIGHT" },
    { SMSG_MOVE_UNSET_FLIGHT, "SMSG_MOVE_UNSET_FLIGHT" },
    { CMSG_MOVE_FLIGHT_ACK, "CMSG_MOVE_FLIGHT_ACK" },
    { MSG_MOVE_START_SWIM_CHEAT, "MSG_MOVE_START_SWIM_CHEAT" },
    { MSG_MOVE_STOP_SWIM_CHEAT, "MSG_MOVE_STOP_SWIM_CHEAT" },
    { CMSG_CANCEL_MOUNT_AURA, "CMSG_CANCEL_MOUNT_AURA" },
    { CMSG_CANCEL_TEMP_ENCHANTMENT, "CMSG_CANCEL_TEMP_ENCHANTMENT" },
    { CMSG_MAELSTROM_INVALIDATE_CACHE, "CMSG_MAELSTROM_INVALIDATE_CACHE" },
    { CMSG_SET_TAXI_BENCHMARK_MODE, "CMSG_SET_TAXI_BENCHMARK_MODE" },
    { CMSG_MOVE_CHNG_TRANSPORT, "CMSG_MOVE_CHNG_TRANSPORT" },
    { MSG_PARTY_ASSIGNMENT, "MSG_PARTY_ASSIGNMENT" },
    { SMSG_OFFER_PETITION_ERROR, "SMSG_OFFER_PETITION_ERROR" },
    { SMSG_RESET_FAILED_NOTIFY, "SMSG_RESET_FAILED_NOTIFY" },
    { SMSG_REAL_GROUP_UPDATE, "SMSG_REAL_GROUP_UPDATE" },
    { SMSG_INIT_EXTRA_AURA_INFO, "SMSG_INIT_EXTRA_AURA_INFO" },
    { SMSG_SET_EXTRA_AURA_INFO, "SMSG_SET_EXTRA_AURA_INFO" },
    { SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE, "SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE" },
    { SMSG_SPELL_CHANCE_PROC_LOG, "SMSG_SPELL_CHANCE_PROC_LOG" },
    { CMSG_MOVE_SET_RUN_SPEED, "CMSG_MOVE_SET_RUN_SPEED" },
    { SMSG_DISMOUNT, "SMSG_DISMOUNT" },
    { MSG_RAID_READY_CHECK_CONFIRM, "MSG_RAID_READY_CHECK_CONFIRM" },
    { SMSG_CLEAR_TARGET, "SMSG_CLEAR_TARGET" },
    { CMSG_BOT_DETECTED, "CMSG_BOT_DETECTED" },
    { SMSG_KICK_REASON, "SMSG_KICK_REASON" },
    { MSG_RAID_READY_CHECK_FINISHED, "MSG_RAID_READY_CHECK_FINISHED" },
    { CMSG_TARGET_CAST, "CMSG_TARGET_CAST" },
    { CMSG_TARGET_SCRIPT_CAST, "CMSG_TARGET_SCRIPT_CAST" },
    { CMSG_CHANNEL_DISPLAY_LIST, "CMSG_CHANNEL_DISPLAY_LIST" },
    { CMSG_GET_CHANNEL_MEMBER_COUNT, "CMSG_GET_CHANNEL_MEMBER_COUNT" },
    { SMSG_CHANNEL_MEMBER_COUNT, "SMSG_CHANNEL_MEMBER_COUNT" },
    { CMSG_DEBUG_LIST_TARGETS, "CMSG_DEBUG_LIST_TARGETS" },
    { SMSG_DEBUG_LIST_TARGETS, "SMSG_DEBUG_LIST_TARGETS" },
    { CMSG_PARTY_SILENCE, "CMSG_PARTY_SILENCE" },
    { CMSG_PARTY_UNSILENCE, "CMSG_PARTY_UNSILENCE" },
    { MSG_NOTIFY_PARTY_SQUELCH, "MSG_NOTIFY_PARTY_SQUELCH" },
    { SMSG_COMSAT_RECONNECT_TRY, "SMSG_COMSAT_RECONNECT_TRY" },
    { SMSG_COMSAT_DISCONNECT, "SMSG_COMSAT_DISCONNECT" },
    { SMSG_COMSAT_CONNECT_FAIL, "SMSG_COMSAT_CONNECT_FAIL" },
    { CMSG_SET_CHANNEL_WATCH, "CMSG_SET_CHANNEL_WATCH" },
    { SMSG_USERLIST_ADD, "SMSG_USERLIST_ADD" },
    { SMSG_USERLIST_REMOVE, "SMSG_USERLIST_REMOVE" },
    { SMSG_USERLIST_UPDATE, "SMSG_USERLIST_UPDATE" },
    { CMSG_CLEAR_CHANNEL_WATCH, "CMSG_CLEAR_CHANNEL_WATCH" },
    { SMSG_GOGOGO_OBSOLETE, "SMSG_GOGOGO_OBSOLETE" },
    { SMSG_ECHO_PARTY_SQUELCH, "SMSG_ECHO_PARTY_SQUELCH" },
    { CMSG_SPELLCLICK, "CMSG_SPELLCLICK" },
    { SMSG_LOOT_LIST, "SMSG_LOOT_LIST" },
    { MSG_GUILD_PERMISSIONS, "MSG_GUILD_PERMISSIONS" },
    { MSG_GUILD_EVENT_LOG_QUERY, "MSG_GUILD_EVENT_LOG_QUERY" },
    { CMSG_MAELSTROM_RENAME_GUILD, "CMSG_MAELSTROM_RENAME_GUILD" },
    { CMSG_GET_MIRRORIMAGE_DATA, "CMSG_GET_MIRRORIMAGE_DATA" },
    { SMSG_MIRRORIMAGE_DATA, "SMSG_MIRRORIMAGE_DATA" },
    { SMSG_FORCE_DISPLAY_UPDATE, "SMSG_FORCE_DISPLAY_UPDATE" },
    { SMSG_SPELL_CHANCE_RESIST_PUSHBACK, "SMSG_SPELL_CHANCE_RESIST_PUSHBACK" },
    { CMSG_IGNORE_DIMINISHING_RETURNS_CHEAT, "CMSG_IGNORE_DIMINISHING_RETURNS_CHEAT" },
    { SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT, "SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT" },
    { CMSG_KEEP_ALIVE, "CMSG_KEEP_ALIVE" },
    { SMSG_RAID_READY_CHECK_ERROR, "SMSG_RAID_READY_CHECK_ERROR" },
    { CMSG_OPT_OUT_OF_LOOT, "CMSG_OPT_OUT_OF_LOOT" },
    { CMSG_SET_GRANTABLE_LEVELS, "CMSG_SET_GRANTABLE_LEVELS" },
    { CMSG_GRANT_LEVEL, "CMSG_GRANT_LEVEL" },
    { CMSG_DECLINE_CHANNEL_INVITE, "CMSG_DECLINE_CHANNEL_INVITE" },
    { CMSG_GROUPACTION_THROTTLED, "CMSG_GROUPACTION_THROTTLED" },
    { SMSG_OVERRIDE_LIGHT, "SMSG_OVERRIDE_LIGHT" },
    { SMSG_TOTEM_CREATED, "SMSG_TOTEM_CREATED" },
    { CMSG_TOTEM_DESTROYED, "CMSG_TOTEM_DESTROYED" },
    { CMSG_EXPIRE_RAID_INSTANCE, "CMSG_EXPIRE_RAID_INSTANCE" },
    { CMSG_NO_SPELL_VARIANCE, "CMSG_NO_SPELL_VARIANCE" },
    { CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY, "CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY" },
    { SMSG_QUESTGIVER_STATUS_MULTIPLE, "SMSG_QUESTGIVER_STATUS_MULTIPLE" },
    { CMSG_QUERY_SERVER_BUCK_DATA, "CMSG_QUERY_SERVER_BUCK_DATA" },
    { CMSG_CLEAR_SERVER_BUCK_DATA, "CMSG_CLEAR_SERVER_BUCK_DATA" },
    { SMSG_SERVER_BUCK_DATA, "SMSG_SERVER_BUCK_DATA" },
    { SMSG_SEND_UNLEARN_SPELLS, "SMSG_SEND_UNLEARN_SPELLS" },
    { SMSG_PROPOSE_LEVEL_GRANT, "SMSG_PROPOSE_LEVEL_GRANT" },
    { CMSG_ACCEPT_LEVEL_GRANT, "CMSG_ACCEPT_LEVEL_GRANT" },
    { SMSG_REFER_A_FRIEND_FAILURE, "SMSG_REFER_A_FRIEND_FAILURE" },
    { SMSG_SUMMON_CANCEL, "SMSG_SUMMON_CANCEL" },
    { 0, NULL }
};

/*! Decrypts the header after the session key has been deducted as described in the top level comment. */
static guint8*
get_decrypted_header(const guint8 session_key[WOWW_SESSION_KEY_LENGTH],
                     guint8* idx,
                     guint8* last_encrypted_value,
                     const guint8* header,
                     guint8 header_size) {
    guint8* decrypted_header = wmem_alloc0(wmem_file_scope(), WOWW_HEADER_ARRAY_ALLOC_SIZE);

    for (guint8 i = 0; i < header_size; i++) {

        // x = (E - L) ^ S as described in top level comment
        decrypted_header[i] = (header[i] - *last_encrypted_value) ^ session_key[*idx];

        *last_encrypted_value = header[i];
        *idx = (*idx + 1) % WOWW_SESSION_KEY_LENGTH;
    }

    return decrypted_header;
}

/*! Deduces the session key values as described in the top level comment. */
static void
deduce_header(guint8 session_key[WOWW_SESSION_KEY_LENGTH],
              bool known_indices[WOWW_SESSION_KEY_LENGTH],
              const guint8* header,
              WowwParticipant_t* participant) {
    // Skip size field (2 bytes) and 2 least significant bytes of opcode field
    participant->idx = (participant->idx + 2 + 2) % WOWW_SESSION_KEY_LENGTH;
    // Set last encrypted value to what it's supposed to be
    participant->last_encrypted_value = header[3];

    // 0 ^ (E - L) as described in top level comment
    session_key[participant->idx] = 0 ^ (header[4] - participant->last_encrypted_value);
    known_indices[participant->idx] = true;
    participant->idx = (participant->idx + 1) % WOWW_SESSION_KEY_LENGTH;
    participant->last_encrypted_value = header[4];

    session_key[participant->idx] = 0 ^ (header[5] - participant->last_encrypted_value);
    known_indices[participant->idx] = true;
    participant->idx = (participant->idx + 1) % WOWW_SESSION_KEY_LENGTH;
    participant->last_encrypted_value = header[5];
}

/*! Returns true if all necessary values of the session key are fully known. */
static gboolean
session_key_is_fully_deduced(const bool known_indices[WOWW_SESSION_KEY_LENGTH],
                             guint8 header_length,
                             guint8 start_index) {
    gboolean fully_deduced = true;
    for (guint8 i = 0; i < header_length; i++) {
        if (!known_indices[(start_index + i) % WOWW_SESSION_KEY_LENGTH]) {
            fully_deduced = false;
        }
    }
    return fully_deduced;
}

/*! Returns either a pointer to a valid decrypted header, or NULL if no such header exists yet. */
static WowwDecryptedHeader_t*
handle_packet_header(packet_info* pinfo,
                     tvbuff_t* tvb,
                     WowwParticipant_t* participant,
                     WowwConversation_t* wowwConversation,
                     guint8 headerSize,
                     guint8 index_in_pdu,
                     gint tvb_offset) {
    guint64 key = ((guint64)index_in_pdu << 32) | pinfo->num;

    guint8* decrypted_header = wmem_map_lookup(wowwConversation->decrypted_headers, &key);

    if (decrypted_header) {
        // Header has already been decrypted
        return (WowwDecryptedHeader_t*)decrypted_header;
    }

    if (participant->stopped_at != 0 && participant->stopped_at != key) {
        // We can't continue decrypt further server messages since we
        // don't know the status of the session key index for any message
        // except the last one we couldn't decrypt.
        return NULL;
    }

    // First time we see this header, we need to decrypt it
    guint8* header = wmem_alloc0(wmem_packet_scope(), WOWW_HEADER_ARRAY_ALLOC_SIZE);
    for (int i = 0; i < headerSize; i++) {
        header[i] = tvb_get_guint8(tvb, tvb_offset + i);
    }

    // If we're seeing the first header
    if (!participant->unencrypted_packet_encountered) {
        // Packet is unencrypted, no need to do anything

        // There is only one unencrypted header each for server and client
        participant->unencrypted_packet_encountered = true;

        decrypted_header = wmem_alloc0(wmem_file_scope(), WOWW_HEADER_ARRAY_ALLOC_SIZE);
        memcpy(decrypted_header, header, headerSize);

        guint64* allocated_key = wmem_alloc0(wmem_file_scope(), sizeof(guint64));
        *allocated_key = key;

        wmem_map_insert(wowwConversation->decrypted_headers, allocated_key, decrypted_header);

        return (WowwDecryptedHeader_t*)decrypted_header;
    }

    WowwPreviousValues_t * original_header_values = wmem_map_lookup(wowwConversation->headers_need_decryption, &key);

    if (original_header_values && !session_key_is_fully_deduced(wowwConversation->known_indices, headerSize, original_header_values->idx)) {
        // If we have seen the header before AND
        // we still can't decrypt it
        // there's nothing to do but wait until we get more information
        return NULL;
    }

    if (!original_header_values && !session_key_is_fully_deduced(wowwConversation->known_indices, headerSize, participant->idx)) {
        // If we haven't seen the header before AND
        // we can't decrypt it now
        // we make sure it gets decrypted later
        WowwPreviousValues_t* array_index = wmem_alloc0(wmem_file_scope(), sizeof(WowwPreviousValues_t));
        array_index->idx = participant->idx;
        array_index->last_encrypted_value = participant->last_encrypted_value;

        guint64* allocated_key = wmem_alloc0(wmem_file_scope(), sizeof(guint64));
        *allocated_key = key;

        wmem_map_insert(wowwConversation->headers_need_decryption, allocated_key, array_index);

        // If it's a server header we can use it to deduce the session key
        if (WOWW_CLIENT_TO_SERVER) {
            deduce_header(wowwConversation->session_key, wowwConversation->known_indices, header, participant);
        } else {
            // We don't know if this PDU contains several messages or just one, so we need
            // to stop parsing server messages until we have fully decrypted this one.
            participant->stopped_at = key;
            // Skip the packet, but remember to acknowledge that values changed
            participant->idx = (participant->idx + headerSize) % WOWW_SESSION_KEY_LENGTH;
            participant->last_encrypted_value = header[headerSize - 1];
        }

        return NULL;
    }

    guint8* idx = &participant->idx;
    guint8* last_encrypted_value = &participant->last_encrypted_value;

    // If this is an out of order packet we must use the original state
    if (original_header_values) {
        // We can now (as best as possible) assume that decryption
        // is in the right place.
        participant->stopped_at = 0;
        // We do not care about how these values are mutated since
        // they are never going to be used again.
        idx = &original_header_values->idx;
        last_encrypted_value = &original_header_values->last_encrypted_value;

        // No need to decrypt it again
        wmem_map_remove(wowwConversation->headers_need_decryption, &key);
    }

    decrypted_header = get_decrypted_header(wowwConversation->session_key,
                                            idx,
                                            last_encrypted_value,
                                            header,
                                            headerSize);

    guint64* allocated_key = wmem_alloc0(wmem_file_scope(), sizeof(guint64));
    *allocated_key = key;

    // The header has been fully decrypted, cache it for future use
    wmem_map_insert(wowwConversation->decrypted_headers, allocated_key, decrypted_header);

    return (WowwDecryptedHeader_t*)decrypted_header;
}

static gint32
get_null_terminated_string_length( tvbuff_t* tvb,
                                   gint32 offset)
{
    const gint32 maximum_length = 255;
    for (gint32 length = 0; length < maximum_length; length++) {
        guint8 character = tvb_get_guint8(tvb, offset + length);
        if (character == 0) {
            // Include the null character in the length
            return length + 1;
        }
    }

    return 0;
}

static void
add_cstring(ptvcursor_t* ptv, const int* hf) {
    gint32 len = get_null_terminated_string_length(ptvcursor_tvbuff(ptv), ptvcursor_current_offset(ptv));
    ptvcursor_add(ptv, *hf, len, ENC_UTF_8);
}

static void
add_sized_cstring(ptvcursor_t* ptv, const int* hf) {
    ptvcursor_add(ptv, hf_woww_string_length, 4, ENC_LITTLE_ENDIAN);
    gint32 len = get_null_terminated_string_length(ptvcursor_tvbuff(ptv), ptvcursor_current_offset(ptv));
    ptvcursor_add(ptv, *hf, len, ENC_UTF_8);
}

static void
add_aura_mask(ptvcursor_t* ptv) {
    guint32 mask = 0;
    ptvcursor_add_ret_uint(ptv, hf_woww_aura_mask, 4, ENC_LITTLE_ENDIAN, &mask);

    for (gint i = 0; i < 32; ++i) {
        if (mask & (1u << i)) {
          ptvcursor_add(ptv, hf_woww_aura, 4, ENC_LITTLE_ENDIAN);
        }
    }
}

static void
add_update_mask(ptvcursor_t* ptv) {
    guint32 amount_of_masks = 0;
    ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_masks, 1, ENC_NA, &amount_of_masks);

    guint32* masks = (guint32*)wmem_alloc0(wmem_packet_scope(), amount_of_masks * 4);
    for (guint32 i = 0; i < amount_of_masks; ++i) {
        ptvcursor_add_ret_uint(ptv, hf_woww_update_mask, 4, ENC_LITTLE_ENDIAN, masks + i);
    }

    for (guint32 mask = 0; mask < amount_of_masks; ++mask) {
        for (guint32 i = 0; i < 32; ++i) {
            if (masks[mask] & (1u << i)) {
              ptvcursor_add(ptv, hf_woww_update_mask_value, 4, ENC_LITTLE_ENDIAN);
            }
        }
    }
}

static void
add_packed_guid(ptvcursor_t* ptv, packet_info* pinfo) {
    tvbuff_t* tvb = ptvcursor_tvbuff(ptv);
    proto_tree* tree = ptvcursor_tree(ptv);

    guint8 byte_mask = tvb_get_guint8(tvb, ptvcursor_current_offset(ptv));
    ptvcursor_advance(ptv, 1);

    guint8* guid = (guint8*)wmem_alloc(wmem_packet_scope(), 8);

    for (gint i = 0; i < 8; ++i) {
        if (byte_mask & (1 << i)) {
            guid[i] = tvb_get_guint8(tvb, ptvcursor_current_offset(ptv));
            ptvcursor_advance(ptv, 1);
        }
    }

    tvbuff_t* next_tvb = tvb_new_child_real_data(tvb, (guint8*)guid, 8, 8);
    add_new_data_source(pinfo, next_tvb, "Packed Guid");

    proto_tree_add_item(tree, hf_woww_guid, next_tvb, 0, 8, ENC_LITTLE_ENDIAN);
}

static void
add_body_fields(guint32 opcode,
                proto_tree* tree,
                tvbuff_t* tvb,
                gint32 offset,
                gint32 offset_packet_end,
                packet_info* pinfo)
{
    guint32 len = 0;
    guint32 i = 0;
/* AUTOGENERATED_START_VARIABLES */
    guint32 amount_of_auras = 0;
    guint32 amount_of_carriers = 0;
    guint32 amount_of_characters = 0;
    guint32 amount_of_choice_item_rewards = 0;
    guint32 amount_of_cooldowns = 0;
    guint32 amount_of_damages = 0;
    guint32 amount_of_effects = 0;
    guint32 amount_of_emotes = 0;
    guint32 amount_of_entries = 0;
    guint32 amount_of_events = 0;
    guint32 amount_of_extra_fields = 0;
    guint32 amount_of_factions = 0;
    guint32 amount_of_friends = 0;
    guint32 amount_of_gossip_items = 0;
    guint32 amount_of_hits = 0;
    guint32 amount_of_ignored = 0;
    guint32 amount_of_item_rewards = 0;
    guint32 amount_of_items = 0;
    guint32 amount_of_mails = 0;
    guint32 amount_of_members = 0;
    guint32 amount_of_misses = 0;
    guint32 amount_of_nodes = 0;
    guint32 amount_of_objects = 0;
    guint32 amount_of_outbid_items = 0;
    guint32 amount_of_petitions = 0;
    guint32 amount_of_pets = 0;
    guint32 amount_of_players = 0;
    guint32 amount_of_quests = 0;
    guint32 amount_of_raid_infos = 0;
    guint32 amount_of_reactions = 0;
    guint32 amount_of_records = 0;
    guint32 amount_of_required_items = 0;
    guint32 amount_of_rights = 0;
    guint32 amount_of_signatures = 0;
    guint32 amount_of_spells = 0;
    guint32 amount_of_states = 0;
    guint32 amount_of_strings = 0;
    guint32 amount_of_targets = 0;
    guint32 amount_of_teammates = 0;
    guint32 amount_of_zones = 0;
    guint32 aura_type = 0;
    guint32 category = 0;
    guint32 chat_type = 0;
    guint32 cooldown_count = 0;
    guint32 count = 0;
    guint32 effect = 0;
    guint32 exp_type = 0;
    guint32 flags = 0;
    guint32 index = 0;
    guint32 info_block = 0;
    guint32 key_version = 0;
    guint32 listed_players = 0;
    guint32 map = 0;
    guint32 mask = 0;
    guint32 message_type = 0;
    guint32 node_count = 0;
    guint32 number_of_battlegrounds = 0;
    guint32 reason = 0;
    guint32 result = 0;
    guint32 spell_count = 0;
    guint32 spline_flags = 0;
    guint32 status = 0;
    guint32 status_id = 0;
    guint32 target_flags = 0;
    guint32 update_flag = 0;
    guint32 update_type = 0;
    guint32 url_info = 0;
/* AUTOGENERATED_END_VARIABLES */
    ptvcursor_t* ptv = ptvcursor_new(wmem_packet_scope(), tree, tvb, offset);
/* AUTOGENERATED_START_PARSER */
    switch (opcode) {
        case CMSG_ACCEPT_TRADE:
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_ACTIVATETAXI:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_source_node, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_destination_node, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_ACTIVATETAXIEXPRESS:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_total_cost, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_node_count, 4, ENC_LITTLE_ENDIAN, &node_count);
            for (i = 0; i < node_count; ++i) {
                ptvcursor_add(ptv, hf_woww_nodes, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case CMSG_ADD_FRIEND:
            add_cstring(ptv, &hf_woww_friend_name);
            break;
        case CMSG_ADD_IGNORE:
            add_cstring(ptv, &hf_woww_ignore_name);
            break;
        case CMSG_AREATRIGGER:
            ptvcursor_add(ptv, hf_woww_trigger_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_AREA_SPIRIT_HEALER_QUERY:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_AREA_SPIRIT_HEALER_QUEUE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_ATTACKSWING:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_AUCTION_LIST_BIDDER_ITEMS:
            ptvcursor_add(ptv, hf_woww_auctioneer, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_start_from_page, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_outbid_items, 4, ENC_LITTLE_ENDIAN, &amount_of_outbid_items);
            for (i = 0; i < amount_of_outbid_items; ++i) {
                ptvcursor_add(ptv, hf_woww_outbid_item_ids, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case CMSG_AUCTION_LIST_ITEMS:
            ptvcursor_add(ptv, hf_woww_auctioneer_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_list_start_item, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_searched_name);
            ptvcursor_add(ptv, hf_woww_minimum_level, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_maximum_level, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_auction_slot_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_auction_main_category, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_auction_sub_category, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_quality, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_usable, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_AUCTION_LIST_OWNER_ITEMS:
            ptvcursor_add(ptv, hf_woww_auctioneer_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_list_from, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_AUCTION_PLACE_BID:
            ptvcursor_add(ptv, hf_woww_auctioneer_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_auction_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_price, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_AUCTION_REMOVE_ITEM:
            ptvcursor_add(ptv, hf_woww_auctioneer_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_auction_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_AUCTION_SELL_ITEM:
            ptvcursor_add(ptv, hf_woww_auctioneer, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_starting_bid, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_buyout, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_auction_duration_in_minutes, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_AUTH_SESSION:
            ptvcursor_add(ptv, hf_woww_build, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_server_id, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_username);
            ptvcursor_add(ptv, hf_woww_client_seed, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_client_proof, 20, ENC_NA);
            ptvcursor_add(ptv, hf_woww_decompressed_addon_info_size, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_AUTOBANK_ITEM:
            ptvcursor_add(ptv, hf_woww_bag_index, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_slot_index, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_AUTOEQUIP_ITEM:
            ptvcursor_add(ptv, hf_woww_source_bag, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_source_slot, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_AUTOEQUIP_ITEM_SLOT:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_destination_slot, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_AUTOSTORE_BAG_ITEM:
            ptvcursor_add(ptv, hf_woww_source_bag, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_source_slot, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_destination_bag, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_AUTOSTORE_BANK_ITEM:
            ptvcursor_add(ptv, hf_woww_bag_index, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_slot_index, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_AUTOSTORE_LOOT_ITEM:
            ptvcursor_add(ptv, hf_woww_item_slot, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_BANKER_ACTIVATE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_BATTLEFIELD_JOIN:
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_BATTLEFIELD_LIST:
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_BATTLEFIELD_PORT:
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_battlefield_port_action, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_BATTLEMASTER_HELLO:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_BATTLEMASTER_JOIN:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_instance_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_join_as_group, 1, ENC_NA);
            break;
        case CMSG_BINDER_ACTIVATE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_BUG:
            ptvcursor_add(ptv, hf_woww_suggestion, 4, ENC_LITTLE_ENDIAN);
            add_sized_cstring(ptv, &hf_woww_content);
            add_sized_cstring(ptv, &hf_woww_bug_type);
            break;
        case CMSG_BUYBACK_ITEM:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_buyback_slot, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_BUY_BANK_SLOT:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_BUY_ITEM:
            ptvcursor_add(ptv, hf_woww_vendor_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_amount, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_BUY_ITEM_IN_SLOT:
            ptvcursor_add(ptv, hf_woww_vendor_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_bag_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_bag_slot, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_amount, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_BUY_STABLE_SLOT:
            ptvcursor_add(ptv, hf_woww_npc_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_CANCEL_AURA:
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_CANCEL_CAST:
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_CANCEL_CHANNELLING:
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_CAST_SPELL:
            ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellCastTargets");
            ptvcursor_add_ret_uint(ptv, hf_woww_spell_cast_target_flags, 2, ENC_LITTLE_ENDIAN, &target_flags);
            if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT_ENEMY) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_GAMEOBJECT) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_LOCKED) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_ITEM) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_TRADE_ITEM) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_SOURCE_LOCATION) {
                ptvcursor_add(ptv, hf_woww_source_position_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_source_position_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_source_position_z, 4, ENC_LITTLE_ENDIAN);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_DEST_LOCATION) {
                ptvcursor_add(ptv, hf_woww_destination_position_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_destination_position_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_destination_position_z, 4, ENC_LITTLE_ENDIAN);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_STRING) {
                add_cstring(ptv, &hf_woww_target_string);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ALLY) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ENEMY) {
                add_packed_guid(ptv, pinfo);
            }
            ptvcursor_pop_subtree(ptv);
            break;
        case CMSG_CHANNEL_ANNOUNCEMENTS:
            add_cstring(ptv, &hf_woww_channel_name);
            break;
        case CMSG_CHANNEL_BAN:
            add_cstring(ptv, &hf_woww_channel_name);
            add_cstring(ptv, &hf_woww_player_name);
            break;
        case CMSG_CHANNEL_INVITE:
            add_cstring(ptv, &hf_woww_channel_name);
            add_cstring(ptv, &hf_woww_player_name);
            break;
        case CMSG_CHANNEL_KICK:
            add_cstring(ptv, &hf_woww_channel_name);
            add_cstring(ptv, &hf_woww_player_name);
            break;
        case CMSG_CHANNEL_LIST:
            add_cstring(ptv, &hf_woww_channel_name);
            break;
        case CMSG_CHANNEL_MODERATE:
            add_cstring(ptv, &hf_woww_channel_name);
            break;
        case CMSG_CHANNEL_MODERATOR:
            add_cstring(ptv, &hf_woww_channel_name);
            add_cstring(ptv, &hf_woww_player_name);
            break;
        case CMSG_CHANNEL_MUTE:
            add_cstring(ptv, &hf_woww_channel_name);
            add_cstring(ptv, &hf_woww_player_name);
            break;
        case CMSG_CHANNEL_OWNER:
            add_cstring(ptv, &hf_woww_channel_name);
            break;
        case CMSG_CHANNEL_PASSWORD:
            add_cstring(ptv, &hf_woww_channel_name);
            add_cstring(ptv, &hf_woww_channel_password);
            break;
        case CMSG_CHANNEL_SET_OWNER:
            add_cstring(ptv, &hf_woww_channel_name);
            add_cstring(ptv, &hf_woww_new_owner);
            break;
        case CMSG_CHANNEL_UNBAN:
            add_cstring(ptv, &hf_woww_channel_name);
            add_cstring(ptv, &hf_woww_player_name);
            break;
        case CMSG_CHANNEL_UNMODERATOR:
            add_cstring(ptv, &hf_woww_channel_name);
            add_cstring(ptv, &hf_woww_player_name);
            break;
        case CMSG_CHANNEL_UNMUTE:
            add_cstring(ptv, &hf_woww_channel_name);
            add_cstring(ptv, &hf_woww_player_name);
            break;
        case CMSG_CHAR_CREATE:
            add_cstring(ptv, &hf_woww_name);
            ptvcursor_add(ptv, hf_woww_race, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_class, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_gender, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_skin_color, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_face, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_hair_style, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_hair_color, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_facial_hair, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_outfit_id, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_CHAR_DELETE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_CHAR_RENAME:
            ptvcursor_add(ptv, hf_woww_character_guid, 8, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_new_name);
            break;
        case CMSG_CHAT_IGNORED:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_CLEAR_TRADE_ITEM:
            ptvcursor_add(ptv, hf_woww_trade_slot, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_CREATURE_QUERY:
            ptvcursor_add(ptv, hf_woww_creature, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_DEL_FRIEND:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_DEL_IGNORE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_DESTROYITEM:
            ptvcursor_add(ptv, hf_woww_bag, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_amount, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_DUEL_ACCEPTED:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_DUEL_CANCELLED:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_EMOTE:
            ptvcursor_add(ptv, hf_woww_emote_enum, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_FAR_SIGHT:
            ptvcursor_add(ptv, hf_woww_far_sight_operation, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_FORCE_MOVE_ROOT_ACK:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
            ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            if (flags & MOVEMENT_FLAGS_SWIMMING) {
                ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_JUMPING) {
                ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
            }
            if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_pop_subtree(ptv);
            break;
        case CMSG_FORCE_MOVE_UNROOT_ACK:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
            ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            if (flags & MOVEMENT_FLAGS_SWIMMING) {
                ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_JUMPING) {
                ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
            }
            if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_pop_subtree(ptv);
            break;
        case CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
            ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            if (flags & MOVEMENT_FLAGS_SWIMMING) {
                ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_JUMPING) {
                ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
            }
            if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_new_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_FORCE_RUN_SPEED_CHANGE_ACK:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
            ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            if (flags & MOVEMENT_FLAGS_SWIMMING) {
                ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_JUMPING) {
                ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
            }
            if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_new_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
            ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            if (flags & MOVEMENT_FLAGS_SWIMMING) {
                ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_JUMPING) {
                ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
            }
            if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_new_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_FORCE_SWIM_SPEED_CHANGE_ACK:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
            ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            if (flags & MOVEMENT_FLAGS_SWIMMING) {
                ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_JUMPING) {
                ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
            }
            if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_new_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_FORCE_TURN_RATE_CHANGE_ACK:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
            ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            if (flags & MOVEMENT_FLAGS_SWIMMING) {
                ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_JUMPING) {
                ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
            }
            if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_new_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_FORCE_WALK_SPEED_CHANGE_ACK:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
            ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            if (flags & MOVEMENT_FLAGS_SWIMMING) {
                ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_JUMPING) {
                ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
            }
            if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_new_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_GAMEOBJECT_QUERY:
            ptvcursor_add(ptv, hf_woww_entry_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_GAMEOBJ_USE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_GET_MAIL_LIST:
            ptvcursor_add(ptv, hf_woww_mailbox_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_GMSURVEY_SUBMIT:
            ptvcursor_add(ptv, hf_woww_survey_id, 4, ENC_LITTLE_ENDIAN);
            for (i = 0; i < 10; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "GmSurveyQuestion");
                ptvcursor_add(ptv, hf_woww_question_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_answer, 1, ENC_LITTLE_ENDIAN);
                add_cstring(ptv, &hf_woww_comment);
                ptvcursor_pop_subtree(ptv);
            }
            add_cstring(ptv, &hf_woww_answer_comment);
            break;
        case CMSG_GMTICKET_CREATE:
            ptvcursor_add_ret_uint(ptv, hf_woww_gm_ticket_type, 1, ENC_LITTLE_ENDIAN, &category);
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            add_cstring(ptv, &hf_woww_message);
            add_cstring(ptv, &hf_woww_reserved_for_future_use);
            if (category == GM_TICKET_TYPE_BEHAVIOR_HARASSMENT) {
                ptvcursor_add(ptv, hf_woww_chat_data_line_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_chat_data_size_uncompressed, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case CMSG_GMTICKET_UPDATETEXT:
            ptvcursor_add(ptv, hf_woww_gm_ticket_type, 1, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_message);
            break;
        case CMSG_GOSSIP_HELLO:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_GOSSIP_SELECT_OPTION:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_gossip_list_id, 4, ENC_LITTLE_ENDIAN);
            len = offset_packet_end - ptvcursor_current_offset(ptv);
            if (len > 0) {
                add_cstring(ptv, &hf_woww_code);
            }
            break;
        case CMSG_GROUP_ASSISTANT_LEADER:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_set_assistant, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_GROUP_CHANGE_SUB_GROUP:
            add_cstring(ptv, &hf_woww_name);
            ptvcursor_add(ptv, hf_woww_group_number, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_GROUP_INVITE:
            add_cstring(ptv, &hf_woww_name);
            break;
        case CMSG_GROUP_SET_LEADER:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_GROUP_SWAP_SUB_GROUP:
            add_cstring(ptv, &hf_woww_name);
            add_cstring(ptv, &hf_woww_swap_with_name);
            break;
        case CMSG_GROUP_UNINVITE:
            add_cstring(ptv, &hf_woww_name);
            break;
        case CMSG_GROUP_UNINVITE_GUID:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_GUILD_ADD_RANK:
            add_cstring(ptv, &hf_woww_rank_name);
            break;
        case CMSG_GUILD_CREATE:
            add_cstring(ptv, &hf_woww_guild_name);
            break;
        case CMSG_GUILD_DEMOTE:
            add_cstring(ptv, &hf_woww_player_name);
            break;
        case CMSG_GUILD_INFO_TEXT:
            add_cstring(ptv, &hf_woww_guild_info);
            break;
        case CMSG_GUILD_INVITE:
            add_cstring(ptv, &hf_woww_invited_player);
            break;
        case CMSG_GUILD_LEADER:
            add_cstring(ptv, &hf_woww_new_guild_leader_name);
            break;
        case CMSG_GUILD_MOTD:
            add_cstring(ptv, &hf_woww_message_of_the_day);
            break;
        case CMSG_GUILD_PROMOTE:
            add_cstring(ptv, &hf_woww_player_name);
            break;
        case CMSG_GUILD_QUERY:
            ptvcursor_add(ptv, hf_woww_guild_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_GUILD_RANK:
            ptvcursor_add(ptv, hf_woww_rank_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_rights, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_rank_name);
            break;
        case CMSG_GUILD_REMOVE:
            add_cstring(ptv, &hf_woww_player_name);
            break;
        case CMSG_GUILD_SET_OFFICER_NOTE:
            add_cstring(ptv, &hf_woww_player_name);
            add_cstring(ptv, &hf_woww_note);
            break;
        case CMSG_GUILD_SET_PUBLIC_NOTE:
            add_cstring(ptv, &hf_woww_player_name);
            add_cstring(ptv, &hf_woww_note);
            break;
        case CMSG_INITIATE_TRADE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_INSPECT:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_ITEM_NAME_QUERY:
            ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_ITEM_QUERY_SINGLE:
            ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_ITEM_TEXT_QUERY:
            ptvcursor_add(ptv, hf_woww_item_text_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_mail_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_JOIN_CHANNEL:
            add_cstring(ptv, &hf_woww_channel_name);
            add_cstring(ptv, &hf_woww_channel_password);
            break;
        case CMSG_LEARN_TALENT:
            ptvcursor_add(ptv, hf_woww_talent_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_requested_rank, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_LEAVE_BATTLEFIELD:
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_LEAVE_CHANNEL:
            add_cstring(ptv, &hf_woww_channel_name);
            break;
        case CMSG_LIST_INVENTORY:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_LOOT:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_LOOT_MASTER_GIVE:
            ptvcursor_add(ptv, hf_woww_loot, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_slot_id, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_player, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_LOOT_METHOD:
            ptvcursor_add(ptv, hf_woww_group_loot_setting, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_loot_master, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_quality, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_LOOT_RELEASE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_LOOT_ROLL:
            ptvcursor_add(ptv, hf_woww_item_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_slot, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_roll_vote, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_MAIL_CREATE_TEXT_ITEM:
            ptvcursor_add(ptv, hf_woww_mailbox_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_mail_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_mail_template_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_MAIL_DELETE:
            ptvcursor_add(ptv, hf_woww_mailbox_id, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_mail_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_MAIL_MARK_AS_READ:
            ptvcursor_add(ptv, hf_woww_mailbox_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_mail_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_MAIL_RETURN_TO_SENDER:
            ptvcursor_add(ptv, hf_woww_mailbox_id, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_mail_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_MAIL_TAKE_ITEM:
            ptvcursor_add(ptv, hf_woww_mailbox_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_mail_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_MAIL_TAKE_MONEY:
            ptvcursor_add(ptv, hf_woww_mailbox_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_mail_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_MEETINGSTONE_JOIN:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_MESSAGECHAT:
            ptvcursor_add_ret_uint(ptv, hf_woww_chat_type, 4, ENC_LITTLE_ENDIAN, &chat_type);
            ptvcursor_add(ptv, hf_woww_language, 4, ENC_LITTLE_ENDIAN);
            if (chat_type == CHAT_TYPE_WHISPER) {
                add_cstring(ptv, &hf_woww_target_player);
            }
            else if (chat_type == CHAT_TYPE_CHANNEL) {
                add_cstring(ptv, &hf_woww_channel);
            }
            add_cstring(ptv, &hf_woww_message);
            break;
        case CMSG_MOVE_FALL_RESET:
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
            ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            if (flags & MOVEMENT_FLAGS_SWIMMING) {
                ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_JUMPING) {
                ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
            }
            if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_pop_subtree(ptv);
            break;
        case CMSG_MOVE_FEATHER_FALL_ACK:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
            ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            if (flags & MOVEMENT_FLAGS_SWIMMING) {
                ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_JUMPING) {
                ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
            }
            if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_apply, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_MOVE_HOVER_ACK:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
            ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            if (flags & MOVEMENT_FLAGS_SWIMMING) {
                ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_JUMPING) {
                ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
            }
            if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_is_applied, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_MOVE_KNOCK_BACK_ACK:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
            ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            if (flags & MOVEMENT_FLAGS_SWIMMING) {
                ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_JUMPING) {
                ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
            }
            if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_pop_subtree(ptv);
            break;
        case CMSG_MOVE_NOT_ACTIVE_MOVER:
            ptvcursor_add(ptv, hf_woww_old_mover, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
            ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            if (flags & MOVEMENT_FLAGS_SWIMMING) {
                ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_JUMPING) {
                ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
            }
            if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_pop_subtree(ptv);
            break;
        case CMSG_MOVE_SET_RAW_POSITION:
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_MOVE_SPLINE_DONE:
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
            ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            if (flags & MOVEMENT_FLAGS_SWIMMING) {
                ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_JUMPING) {
                ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
            }
            if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_MOVE_TIME_SKIPPED:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_lag, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_MOVE_WATER_WALK_ACK:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
            ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            if (flags & MOVEMENT_FLAGS_SWIMMING) {
                ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
            if (flags & MOVEMENT_FLAGS_JUMPING) {
                ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
            }
            if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_apply, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_NAME_QUERY:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_NPC_TEXT_QUERY:
            ptvcursor_add(ptv, hf_woww_text_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_OFFER_PETITION:
            ptvcursor_add(ptv, hf_woww_petition_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_OPEN_ITEM:
            ptvcursor_add(ptv, hf_woww_bag_index, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PAGE_TEXT_QUERY:
            ptvcursor_add(ptv, hf_woww_page_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PETITION_BUY:
            ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_guid, 8, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_name);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 2, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_index, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PETITION_QUERY:
            ptvcursor_add(ptv, hf_woww_guild_guid, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_petition_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PETITION_SHOWLIST:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PETITION_SHOW_SIGNATURES:
            ptvcursor_add(ptv, hf_woww_item_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PETITION_SIGN:
            ptvcursor_add(ptv, hf_woww_petition_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PET_ABANDON:
            ptvcursor_add(ptv, hf_woww_pet_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PET_ACTION:
            ptvcursor_add(ptv, hf_woww_pet_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_data, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PET_CANCEL_AURA:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PET_CAST_SPELL:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PET_NAME_QUERY:
            ptvcursor_add(ptv, hf_woww_pet_number, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PET_RENAME:
            ptvcursor_add(ptv, hf_woww_pet_guid, 8, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_name);
            break;
        case CMSG_PET_SET_ACTION:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_position, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_data, 4, ENC_LITTLE_ENDIAN);
            len = offset_packet_end - ptvcursor_current_offset(ptv);
            if (len > 0) {
                ptvcursor_add(ptv, hf_woww_position, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_data, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case CMSG_PET_SPELL_AUTOCAST:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_enabled, 1, ENC_NA);
            break;
        case CMSG_PET_STOP_ATTACK:
            ptvcursor_add(ptv, hf_woww_pet_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PET_UNLEARN:
            ptvcursor_add(ptv, hf_woww_pet_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PING:
            ptvcursor_add(ptv, hf_woww_sequence_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_round_time_in_ms, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PLAYER_LOGIN:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_PUSHQUESTTOPARTY:
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_QUESTGIVER_ACCEPT_QUEST:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_QUESTGIVER_CHOOSE_REWARD:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_reward, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_QUESTGIVER_COMPLETE_QUEST:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_QUESTGIVER_HELLO:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_QUESTGIVER_QUERY_QUEST:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_QUESTGIVER_REQUEST_REWARD:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_QUESTGIVER_STATUS_QUERY:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_QUESTLOG_REMOVE_QUEST:
            ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_QUESTLOG_SWAP_QUEST:
            ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_QUEST_CONFIRM_ACCEPT:
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_QUEST_QUERY:
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_READ_ITEM:
            ptvcursor_add(ptv, hf_woww_bag_index, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_RECLAIM_CORPSE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_REPAIR_ITEM:
            ptvcursor_add(ptv, hf_woww_npc_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_REQUEST_ACCOUNT_DATA:
            ptvcursor_add(ptv, hf_woww_data_type, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_REQUEST_PARTY_MEMBER_STATS:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_RESURRECT_RESPONSE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_status, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SELL_ITEM:
            ptvcursor_add(ptv, hf_woww_vendor_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_amount, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SEND_MAIL:
            ptvcursor_add(ptv, hf_woww_mailbox, 8, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_receiver);
            add_cstring(ptv, &hf_woww_subject);
            add_cstring(ptv, &hf_woww_body);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_money, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_cash_on_delivery_amount, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SETSHEATHED:
            ptvcursor_add(ptv, hf_woww_sheath_state, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SET_ACTIONBAR_TOGGLES:
            ptvcursor_add(ptv, hf_woww_action_bar, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SET_ACTION_BUTTON:
            ptvcursor_add(ptv, hf_woww_button, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_action, 2, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_misc, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_action_type, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SET_ACTIVE_MOVER:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SET_AMMO:
            ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SET_FACTION_ATWAR:
            ptvcursor_add(ptv, hf_woww_reputation_list_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_faction_flag, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SET_FACTION_INACTIVE:
            ptvcursor_add(ptv, hf_woww_reputation_list_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_inactive, 1, ENC_NA);
            break;
        case CMSG_SET_SELECTION:
            ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SET_TARGET_OBSOLETE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SET_TRADE_GOLD:
            ptvcursor_add(ptv, hf_woww_gold, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SET_TRADE_ITEM:
            ptvcursor_add(ptv, hf_woww_trade_slot, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_bag, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SET_WATCHED_FACTION:
            ptvcursor_add(ptv, hf_woww_reputation_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SPIRIT_HEALER_ACTIVATE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SPLIT_ITEM:
            ptvcursor_add(ptv, hf_woww_source_bag, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_source_slot, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_destination_bag, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_destination_slot, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_amount, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_STABLE_PET:
            ptvcursor_add(ptv, hf_woww_npc_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_STABLE_SWAP_PET:
            ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_pet_slot, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_STANDSTATECHANGE:
            ptvcursor_add(ptv, hf_woww_unit_stand_state, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SUMMON_RESPONSE:
            ptvcursor_add(ptv, hf_woww_summoner_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SWAP_INV_ITEM:
            ptvcursor_add(ptv, hf_woww_source_slot, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_destination_slot, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_SWAP_ITEM:
            ptvcursor_add(ptv, hf_woww_destination_bag, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_destionation_slot, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_source_bag, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_source_slot, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_TAXINODE_STATUS_QUERY:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_TAXIQUERYAVAILABLENODES:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_TELEPORT_TO_UNIT:
            add_cstring(ptv, &hf_woww_name);
            break;
        case CMSG_TEXT_EMOTE:
            ptvcursor_add(ptv, hf_woww_text_emote, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_emote_enum, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_TOGGLE_PVP:
            len = offset_packet_end - ptvcursor_current_offset(ptv);
            if (len > 0) {
                ptvcursor_add(ptv, hf_woww_enable_pvp, 1, ENC_NA);
            }
            break;
        case CMSG_TRAINER_BUY_SPELL:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_TRAINER_LIST:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_TURN_IN_PETITION:
            ptvcursor_add(ptv, hf_woww_petition_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_TUTORIAL_FLAG:
            ptvcursor_add(ptv, hf_woww_tutorial_flag, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_UNLEARN_SKILL:
            ptvcursor_add(ptv, hf_woww_skill_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_UNSTABLE_PET:
            ptvcursor_add(ptv, hf_woww_npc_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_pet_number, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_UPDATE_ACCOUNT_DATA:
            ptvcursor_add(ptv, hf_woww_data_type, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            len = offset_packet_end - ptvcursor_current_offset(ptv);
            ptvcursor_add(ptv, hf_woww_unknown_bytes, len, ENC_NA);
            break;
        case CMSG_USE_ITEM:
            ptvcursor_add(ptv, hf_woww_bag_index, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_bag_slot, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_spell_index, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellCastTargets");
            ptvcursor_add_ret_uint(ptv, hf_woww_spell_cast_target_flags, 2, ENC_LITTLE_ENDIAN, &target_flags);
            if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT_ENEMY) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_GAMEOBJECT) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_LOCKED) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_ITEM) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_TRADE_ITEM) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_SOURCE_LOCATION) {
                ptvcursor_add(ptv, hf_woww_source_position_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_source_position_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_source_position_z, 4, ENC_LITTLE_ENDIAN);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_DEST_LOCATION) {
                ptvcursor_add(ptv, hf_woww_destination_position_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_destination_position_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_destination_position_z, 4, ENC_LITTLE_ENDIAN);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_STRING) {
                add_cstring(ptv, &hf_woww_target_string);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ALLY) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ENEMY) {
                add_packed_guid(ptv, pinfo);
            }
            ptvcursor_pop_subtree(ptv);
            break;
        case CMSG_WARDEN_DATA:
            len = offset_packet_end - ptvcursor_current_offset(ptv);
            ptvcursor_add(ptv, hf_woww_unimplemented, len, ENC_NA);
            break;
        case CMSG_WHO:
            ptvcursor_add(ptv, hf_woww_minimum_level, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_maximum_level, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_player_name);
            add_cstring(ptv, &hf_woww_guild_name);
            ptvcursor_add(ptv, hf_woww_race_mask, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_class_mask, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_zones, 4, ENC_LITTLE_ENDIAN, &amount_of_zones);
            for (i = 0; i < amount_of_zones; ++i) {
                ptvcursor_add(ptv, hf_woww_zones, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_strings, 4, ENC_LITTLE_ENDIAN, &amount_of_strings);
            for (i = 0; i < amount_of_strings; ++i) {
                add_cstring(ptv, &hf_woww_search_strings);
            }
            break;
        case CMSG_WHOIS:
            add_cstring(ptv, &hf_woww_character_name);
            break;
        case CMSG_WORLD_TELEPORT:
            ptvcursor_add(ptv, hf_woww_time_in_msec, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_WRAP_ITEM:
            ptvcursor_add(ptv, hf_woww_gift_bag_index, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_gift_slot, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_bag_index, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_slot, 1, ENC_LITTLE_ENDIAN);
            break;
        case CMSG_ZONEUPDATE:
            ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
            break;
        case MSG_AUCTION_HELLO:
            if (WOWW_SERVER_TO_CLIENT) {
                ptvcursor_add(ptv, hf_woww_auctioneer, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_auction_house_id, 4, ENC_LITTLE_ENDIAN);
            }
            else {
                ptvcursor_add(ptv, hf_woww_auctioneer, 8, ENC_LITTLE_ENDIAN);
            }
            break;
        case MSG_BATTLEGROUND_PLAYER_POSITIONS:
            if (WOWW_SERVER_TO_CLIENT) {
                ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_teammates, 4, ENC_LITTLE_ENDIAN, &amount_of_teammates);
                for (i = 0; i < amount_of_teammates; ++i) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "BattlegroundPlayerPosition");
                    ptvcursor_add(ptv, hf_woww_player, 8, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_position_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_position_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_carriers, 1, ENC_LITTLE_ENDIAN, &amount_of_carriers);
                for (i = 0; i < amount_of_carriers; ++i) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "BattlegroundPlayerPosition");
                    ptvcursor_add(ptv, hf_woww_player, 8, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_position_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_position_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
            }
            else {
            }
            break;
        case MSG_CORPSE_QUERY:
            if (WOWW_SERVER_TO_CLIENT) {
                ptvcursor_add_ret_uint(ptv, hf_woww_corpse_query_result, 1, ENC_LITTLE_ENDIAN, &result);
                if (result == CORPSE_QUERY_RESULT_FOUND) {
                    ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
                }
            }
            else {
            }
            break;
        case MSG_INSPECT_HONOR_STATS:
            if (WOWW_SERVER_TO_CLIENT) {
                ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_pvp_rank, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_today_honorable_and_dishonorable, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_yesterday_honorable, 2, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_unknown_int, 2, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_last_week_honorable, 2, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_unknown_int, 2, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_this_week_honorable, 2, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_unknown_int, 2, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_lifetime_honorable, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_lifetime_dishonorable, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_yesterday_honor, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_last_week_honor, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_this_week_honor, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_pvp_rank, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_rank_progress_bar, 1, ENC_LITTLE_ENDIAN);
            }
            else {
                ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            }
            break;
        case MSG_LIST_STABLED_PETS:
            if (WOWW_SERVER_TO_CLIENT) {
                ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_pets, 1, ENC_LITTLE_ENDIAN, &amount_of_pets);
                ptvcursor_add(ptv, hf_woww_stable_slots, 1, ENC_LITTLE_ENDIAN);
                for (i = 0; i < amount_of_pets; ++i) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "StabledPet");
                    ptvcursor_add(ptv, hf_woww_pet_number, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_entry, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_level, 4, ENC_LITTLE_ENDIAN);
                    add_cstring(ptv, &hf_woww_name);
                    ptvcursor_add(ptv, hf_woww_loyalty, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
            }
            else {
                ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
            }
            break;
        case MSG_LOOKING_FOR_GROUP:
            if (WOWW_SERVER_TO_CLIENT) {
                ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            }
            else {
            }
            break;
        case MSG_MINIMAP_PING:
            if (WOWW_SERVER_TO_CLIENT) {
                ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_position_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_position_y, 4, ENC_LITTLE_ENDIAN);
            }
            else {
                ptvcursor_add(ptv, hf_woww_position_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_position_y, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case MSG_MOVE_FALL_LAND:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_HEARTBEAT:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_JUMP:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_SET_FACING:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_SET_PITCH:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_SET_RUN_MODE:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_SET_WALK_MODE:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_START_BACKWARD:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_START_FORWARD:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_START_PITCH_DOWN:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_START_PITCH_UP:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_START_STRAFE_LEFT:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_START_STRAFE_RIGHT:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_START_SWIM:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_START_TURN_LEFT:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_START_TURN_RIGHT:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_STOP_PITCH:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_STOP_STRAFE:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_STOP_SWIM:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_STOP:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_STOP_TURN:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case MSG_MOVE_TELEPORT_ACK:
            if (WOWW_SERVER_TO_CLIENT) {
                add_packed_guid(ptv, pinfo);
                ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementInfo");
                ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                    ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                    ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                if (flags & MOVEMENT_FLAGS_SWIMMING) {
                    ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                if (flags & MOVEMENT_FLAGS_JUMPING) {
                    ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                }
                if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                    ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            else {
                ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_time_in_msecs, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case MSG_PETITION_DECLINE:
            ptvcursor_add(ptv, hf_woww_petition, 8, ENC_LITTLE_ENDIAN);
            break;
        case MSG_PETITION_RENAME:
            ptvcursor_add(ptv, hf_woww_petition_guid, 8, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_new_name);
            break;
        case MSG_PVP_LOG_DATA:
            if (WOWW_SERVER_TO_CLIENT) {
                ptvcursor_add_ret_uint(ptv, hf_woww_battleground_end_status, 1, ENC_LITTLE_ENDIAN, &status);
                if (status == BATTLEGROUND_END_STATUS_ENDED) {
                    ptvcursor_add(ptv, hf_woww_battleground_winner, 1, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_players, 4, ENC_LITTLE_ENDIAN, &amount_of_players);
                for (i = 0; i < amount_of_players; ++i) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "BattlegroundPlayer");
                    ptvcursor_add(ptv, hf_woww_player, 8, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_pvp_rank, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_killing_blows, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_honorable_kills, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_deaths, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_bonus_honor, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_extra_fields, 4, ENC_LITTLE_ENDIAN, &amount_of_extra_fields);
                    for (i = 0; i < amount_of_extra_fields; ++i) {
                        ptvcursor_add(ptv, hf_woww_fields, 4, ENC_LITTLE_ENDIAN);
                    }
                    ptvcursor_pop_subtree(ptv);
                }
            }
            else {
            }
            break;
        case MSG_QUERY_NEXT_MAIL_TIME:
            if (WOWW_SERVER_TO_CLIENT) {
                ptvcursor_add(ptv, hf_woww_unread_mails, 4, ENC_LITTLE_ENDIAN);
            }
            else {
            }
            break;
        case MSG_QUEST_PUSH_RESULT:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_party_message, 1, ENC_LITTLE_ENDIAN);
            break;
        case MSG_RAID_READY_CHECK:
            if (WOWW_SERVER_TO_CLIENT) {
                len = offset_packet_end - ptvcursor_current_offset(ptv);
                if (len > 0) {
                    ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_state, 1, ENC_LITTLE_ENDIAN);
                }
            }
            else {
                len = offset_packet_end - ptvcursor_current_offset(ptv);
                if (len > 0) {
                    ptvcursor_add(ptv, hf_woww_state, 1, ENC_LITTLE_ENDIAN);
                }
            }
            break;
        case MSG_RAID_TARGET_UPDATE:
            if (WOWW_SERVER_TO_CLIENT) {
                ptvcursor_add_ret_uint(ptv, hf_woww_raid_target_update_type, 1, ENC_LITTLE_ENDIAN, &update_type);
                if (update_type == RAID_TARGET_UPDATE_TYPE_FULL) {
                    for (i = 0; i < 8; ++i) {
                        ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "RaidTargetUpdate");
                        ptvcursor_add(ptv, hf_woww_raid_target_index, 1, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
                        ptvcursor_pop_subtree(ptv);
                    }
                }
                else if (update_type == RAID_TARGET_UPDATE_TYPE_PARTIAL) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "RaidTargetUpdate");
                    ptvcursor_add(ptv, hf_woww_raid_target_index, 1, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
            }
            else {
                ptvcursor_add_ret_uint(ptv, hf_woww_raid_target_index, 1, ENC_LITTLE_ENDIAN, &index);
                if (index != RAID_TARGET_INDEX_REQUEST_ICONS) {
                    ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
                }
            }
            break;
        case MSG_RANDOM_ROLL:
            if (WOWW_SERVER_TO_CLIENT) {
                ptvcursor_add(ptv, hf_woww_minimum, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_maximum, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_actual_roll, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            }
            else {
                ptvcursor_add(ptv, hf_woww_minimum, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_maximum, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case MSG_SAVE_GUILD_EMBLEM:
            if (WOWW_SERVER_TO_CLIENT) {
                ptvcursor_add(ptv, hf_woww_guild_emblem_result, 4, ENC_LITTLE_ENDIAN);
            }
            else {
                ptvcursor_add(ptv, hf_woww_vendor, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_emblem_style, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_emblem_color, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_border_style, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_border_color, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_background_color, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case MSG_TABARDVENDOR_ACTIVATE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case MSG_TALENT_WIPE_CONFIRM:
            if (WOWW_SERVER_TO_CLIENT) {
                ptvcursor_add(ptv, hf_woww_wiping_npc, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cost_in_copper, 4, ENC_LITTLE_ENDIAN);
            }
            else {
                ptvcursor_add(ptv, hf_woww_wiping_npc, 8, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_ACCOUNT_DATA_TIMES:
            for (i = 0; i < 32; ++i) {
                ptvcursor_add(ptv, hf_woww_data, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_ACTION_BUTTONS:
            for (i = 0; i < 120; ++i) {
                ptvcursor_add(ptv, hf_woww_data, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_ACTIVATETAXIREPLY:
            ptvcursor_add(ptv, hf_woww_activate_taxi_reply, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_ADDON_INFO:
            while (ptvcursor_current_offset(ptv) < offset_packet_end) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Addon");
                ptvcursor_add(ptv, hf_woww_addon_type, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add_ret_uint(ptv, hf_woww_info_block, 1, ENC_LITTLE_ENDIAN, &info_block);
                if (info_block == INFO_BLOCK_AVAILABLE) {
                    ptvcursor_add_ret_uint(ptv, hf_woww_key_version, 1, ENC_LITTLE_ENDIAN, &key_version);
                    if (key_version != KEY_VERSION_ZERO) {
                        ptvcursor_add(ptv, hf_woww_public_key, 256, ENC_NA);
                    }
                    ptvcursor_add(ptv, hf_woww_update_available_flag, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_add_ret_uint(ptv, hf_woww_url_info, 1, ENC_LITTLE_ENDIAN, &url_info);
                if (url_info == URL_INFO_AVAILABLE) {
                    add_cstring(ptv, &hf_woww_url);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_AI_REACTION:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_ai_reaction, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_AREA_SPIRIT_HEALER_TIME:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_next_resurrect_time, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_AREA_TRIGGER_MESSAGE:
            add_sized_cstring(ptv, &hf_woww_message);
            break;
        case SMSG_ATTACKERSTATEUPDATE:
            ptvcursor_add(ptv, hf_woww_hit_info, 4, ENC_LITTLE_ENDIAN);
            add_packed_guid(ptv, pinfo);
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_total_damage, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_damages, 1, ENC_LITTLE_ENDIAN, &amount_of_damages);
            for (i = 0; i < amount_of_damages; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "DamageInfo");
                ptvcursor_add(ptv, hf_woww_spell_school_mask, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_damage_float, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_damage_uint, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_absorb, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_resist, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            ptvcursor_add(ptv, hf_woww_damage_state, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_spell_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_blocked_amount, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_ATTACKSTART:
            ptvcursor_add(ptv, hf_woww_attacker_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_victim_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_ATTACKSTOP:
            add_packed_guid(ptv, pinfo);
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_AUCTION_BIDDER_LIST_RESULT:
            ptvcursor_add_ret_uint(ptv, hf_woww_count, 4, ENC_LITTLE_ENDIAN, &count);
            for (i = 0; i < count; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "AuctionListItem");
                ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_entry, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_enchantment, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_suffix_factor, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_charges, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_owner, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_start_bid, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_minimum_bid, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_buyout_amount, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_time_left_in_msecs, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_highest_bidder, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_highest_bid, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            ptvcursor_add(ptv, hf_woww_total_amount_of_auctions, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_AUCTION_BIDDER_NOTIFICATION:
            ptvcursor_add(ptv, hf_woww_auction_house_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_auction_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_bidder, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_won, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_out_bid, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_template, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_AUCTION_COMMAND_RESULT:
            len = offset_packet_end - ptvcursor_current_offset(ptv);
            ptvcursor_add(ptv, hf_woww_unimplemented, len, ENC_NA);
            break;
        case SMSG_AUCTION_LIST_RESULT:
            ptvcursor_add_ret_uint(ptv, hf_woww_count, 4, ENC_LITTLE_ENDIAN, &count);
            for (i = 0; i < count; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "AuctionListItem");
                ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_entry, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_enchantment, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_suffix_factor, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_charges, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_owner, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_start_bid, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_minimum_bid, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_buyout_amount, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_time_left_in_msecs, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_highest_bidder, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_highest_bid, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            ptvcursor_add(ptv, hf_woww_total_amount_of_auctions, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_AUCTION_OWNER_LIST_RESULT:
            ptvcursor_add_ret_uint(ptv, hf_woww_count, 4, ENC_LITTLE_ENDIAN, &count);
            for (i = 0; i < count; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "AuctionListItem");
                ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_entry, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_enchantment, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_suffix_factor, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_charges, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_owner, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_start_bid, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_minimum_bid, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_buyout_amount, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_time_left_in_msecs, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_highest_bidder, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_highest_bid, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            ptvcursor_add(ptv, hf_woww_total_amount_of_auctions, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_AUCTION_OWNER_NOTIFICATION:
            ptvcursor_add(ptv, hf_woww_auction_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_bid, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_auction_out_bid, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_bidder, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_entry, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_AUCTION_REMOVED_NOTIFICATION:
            ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_template, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_random_property_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_AUTH_CHALLENGE:
            ptvcursor_add(ptv, hf_woww_server_seed, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_AUTH_RESPONSE:
            ptvcursor_add_ret_uint(ptv, hf_woww_world_result, 1, ENC_LITTLE_ENDIAN, &result);
            if (result == WORLD_RESULT_AUTH_OK) {
                ptvcursor_add(ptv, hf_woww_billing_time, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_billing_flags, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_billing_rested, 4, ENC_LITTLE_ENDIAN);
            }
            else if (result == WORLD_RESULT_AUTH_WAIT_QUEUE) {
                ptvcursor_add(ptv, hf_woww_queue_position, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_BATTLEFIELD_LIST:
            ptvcursor_add(ptv, hf_woww_battlemaster, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_battleground_bracket, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_number_of_battlegrounds, 4, ENC_LITTLE_ENDIAN, &number_of_battlegrounds);
            for (i = 0; i < number_of_battlegrounds; ++i) {
                ptvcursor_add(ptv, hf_woww_battlegrounds, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_BATTLEFIELD_STATUS:
            ptvcursor_add(ptv, hf_woww_queue_slot, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN, &map);
            if (map != MAP_EASTERN_KINGDOMS) {
                ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_client_instance_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_ret_uint(ptv, hf_woww_status_id, 1, ENC_LITTLE_ENDIAN, &status_id);
                if (status_id == STATUS_ID_WAIT_QUEUE) {
                    ptvcursor_add(ptv, hf_woww_average_wait_time_in_ms, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_time_in_queue_in_ms, 4, ENC_LITTLE_ENDIAN);
                }
                else if (status_id == STATUS_ID_WAIT_JOIN) {
                    ptvcursor_add(ptv, hf_woww_time_to_remove_in_queue_in_ms, 4, ENC_LITTLE_ENDIAN);
                }
                else if (status_id == STATUS_ID_IN_PROGRESS) {
                    ptvcursor_add(ptv, hf_woww_time_to_bg_autoleave_in_ms, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_time_to_bg_start_in_ms, 4, ENC_LITTLE_ENDIAN);
                }
            }
            break;
        case SMSG_BATTLEGROUND_PLAYER_JOINED:
            ptvcursor_add(ptv, hf_woww_player_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_BATTLEGROUND_PLAYER_LEFT:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_BINDER_CONFIRM:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_BINDPOINTUPDATE:
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_BUY_BANK_SLOT_RESULT:
            ptvcursor_add(ptv, hf_woww_buy_bank_slot_result, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_BUY_FAILED:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_buy_result, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_BUY_ITEM:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_vendor_slot, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_amount_for_sale, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_amount_bought, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_CAST_RESULT:
            ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_simple_spell_cast_result, 1, ENC_LITTLE_ENDIAN, &result);
            if (result != SIMPLE_SPELL_CAST_RESULT_FAILURE) {
                ptvcursor_add_ret_uint(ptv, hf_woww_cast_failure_reason, 1, ENC_LITTLE_ENDIAN, &reason);
                if (reason == CAST_FAILURE_REASON_REQUIRES_SPELL_FOCUS) {
                    ptvcursor_add(ptv, hf_woww_required_spell_focus, 4, ENC_LITTLE_ENDIAN);
                }
                else if (reason == CAST_FAILURE_REASON_REQUIRES_AREA) {
                    ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
                }
                else if (reason == CAST_FAILURE_REASON_EQUIPPED_ITEM_CLASS) {
                    ptvcursor_add(ptv, hf_woww_equipped_item_class, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_equipped_item_subclass_mask, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_equipped_item_inventory_type_mask, 4, ENC_LITTLE_ENDIAN);
                }
            }
            break;
        case SMSG_CHANNEL_LIST:
            add_cstring(ptv, &hf_woww_channel_name);
            ptvcursor_add(ptv, hf_woww_channel_flags, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_members, 4, ENC_LITTLE_ENDIAN, &amount_of_members);
            for (i = 0; i < amount_of_members; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "ChannelMember");
                ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_channel_member_flags, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_CHANNEL_NOTIFY:
            ptvcursor_add(ptv, hf_woww_chat_notify, 1, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_channel_name);
            break;
        case SMSG_CHARACTER_LOGIN_FAILED:
            ptvcursor_add(ptv, hf_woww_world_result, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_CHAR_CREATE:
            ptvcursor_add(ptv, hf_woww_world_result, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_CHAR_DELETE:
            ptvcursor_add(ptv, hf_woww_world_result, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_CHAR_ENUM:
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_characters, 1, ENC_LITTLE_ENDIAN, &amount_of_characters);
            for (i = 0; i < amount_of_characters; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Character");
                ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
                add_cstring(ptv, &hf_woww_name);
                ptvcursor_add(ptv, hf_woww_race, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_class, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_gender, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_skin, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_face, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_hair_style, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_hair_color, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_facial_hair, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_level, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
                ptvcursor_add(ptv, hf_woww_guild_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_character_flags, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_first_login, 1, ENC_NA);
                ptvcursor_add(ptv, hf_woww_pet_display_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_pet_level, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_pet_family, 4, ENC_LITTLE_ENDIAN);
                for (i = 0; i < 19; ++i) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "CharacterGear");
                    ptvcursor_add(ptv, hf_woww_equipment_display_id, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_inventory_type, 1, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                ptvcursor_add(ptv, hf_woww_first_bag_display_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_first_bag_inventory_id, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_CHAR_RENAME:
            ptvcursor_add_ret_uint(ptv, hf_woww_world_result, 1, ENC_LITTLE_ENDIAN, &result);
            if (result == WORLD_RESULT_RESPONSE_SUCCESS) {
                ptvcursor_add(ptv, hf_woww_character_guid, 8, ENC_LITTLE_ENDIAN);
                add_cstring(ptv, &hf_woww_new_name);
            }
            break;
        case SMSG_CHAT_PLAYER_NOT_FOUND:
            add_cstring(ptv, &hf_woww_name);
            break;
        case SMSG_CLEAR_COOLDOWN:
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_CLIENT_CONTROL_UPDATE:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_allow_movement, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_COMPRESSED_MOVES:
            len = offset_packet_end - ptvcursor_current_offset(ptv);
            ptvcursor_add(ptv, hf_woww_unimplemented, len, ENC_NA);
            break;
        case SMSG_COMPRESSED_UPDATE_OBJECT:
            len = offset_packet_end - ptvcursor_current_offset(ptv);
            ptvcursor_add(ptv, hf_woww_unimplemented, len, ENC_NA);
            break;
        case SMSG_COOLDOWN_EVENT:
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_CORPSE_RECLAIM_DELAY:
            ptvcursor_add(ptv, hf_woww_delay_in_seconds, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_CREATURE_QUERY_RESPONSE:
            ptvcursor_add(ptv, hf_woww_creature_entry, 4, ENC_LITTLE_ENDIAN);
            len = offset_packet_end - ptvcursor_current_offset(ptv);
            if (len > 0) {
                add_cstring(ptv, &hf_woww_name);
                add_cstring(ptv, &hf_woww_name);
                add_cstring(ptv, &hf_woww_name);
                add_cstring(ptv, &hf_woww_name);
                add_cstring(ptv, &hf_woww_sub_name);
                ptvcursor_add(ptv, hf_woww_type_flags, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_creature_type, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_creature_family, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_creature_rank, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_spell_data_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_display_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_civilian, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_racial_leader, 1, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_DEFENSE_MESSAGE:
            ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
            add_sized_cstring(ptv, &hf_woww_message);
            break;
        case SMSG_DESTROY_OBJECT:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_DISMOUNTRESULT:
            ptvcursor_add(ptv, hf_woww_mount_result, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_DISPEL_FAILED:
            ptvcursor_add(ptv, hf_woww_caster_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
            while (ptvcursor_current_offset(ptv) < offset_packet_end) {
                ptvcursor_add(ptv, hf_woww_spells, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_DUEL_COMPLETE:
            ptvcursor_add(ptv, hf_woww_ended_without_interruption, 1, ENC_NA);
            break;
        case SMSG_DUEL_COUNTDOWN:
            ptvcursor_add(ptv, hf_woww_time_in_seconds, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_DUEL_REQUESTED:
            ptvcursor_add(ptv, hf_woww_initiator_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_DUEL_WINNER:
            ptvcursor_add(ptv, hf_woww_duel_winner_reason, 1, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_opponent_name);
            add_cstring(ptv, &hf_woww_initiator_name);
            break;
        case SMSG_EMOTE:
            ptvcursor_add(ptv, hf_woww_emote_enum, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_ENCHANTMENTLOG:
            ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_caster_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_ENVIRONMENTALDAMAGELOG:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_environmental_damage_type, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_absorb, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_resist, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_EXPECTED_SPAM_RECORDS:
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_records, 4, ENC_LITTLE_ENDIAN, &amount_of_records);
            for (i = 0; i < amount_of_records; ++i) {
                add_cstring(ptv, &hf_woww_records);
            }
            break;
        case SMSG_EXPLORATION_EXPERIENCE:
            ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_experience, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_FORCE_MOVE_ROOT:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_FORCE_MOVE_UNROOT:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_FORCE_RUN_BACK_SPEED_CHANGE:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_move_event, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_FORCE_RUN_SPEED_CHANGE:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_move_event, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_FORCE_SWIM_BACK_SPEED_CHANGE:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_move_event, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_FORCE_SWIM_SPEED_CHANGE:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_move_event, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_FORCE_TURN_RATE_CHANGE:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_move_event, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_FORCE_WALK_SPEED_CHANGE:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_move_event, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_FRIEND_LIST:
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_friends, 1, ENC_LITTLE_ENDIAN, &amount_of_friends);
            for (i = 0; i < amount_of_friends; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Friend");
                ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add_ret_uint(ptv, hf_woww_friend_status, 1, ENC_LITTLE_ENDIAN, &status);
                if (status != FRIEND_STATUS_OFFLINE) {
                    ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_level, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_class, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_FRIEND_STATUS:
            ptvcursor_add(ptv, hf_woww_friend_result, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_GAMEOBJECT_CUSTOM_ANIM:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_animation_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_GAMEOBJECT_DESPAWN_ANIM:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_GAMEOBJECT_PAGETEXT:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_GAMEOBJECT_QUERY_RESPONSE:
            ptvcursor_add(ptv, hf_woww_entry_id, 4, ENC_LITTLE_ENDIAN);
            len = offset_packet_end - ptvcursor_current_offset(ptv);
            if (len > 0) {
                ptvcursor_add(ptv, hf_woww_info_type, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_display_id, 4, ENC_LITTLE_ENDIAN);
                add_cstring(ptv, &hf_woww_name);
                add_cstring(ptv, &hf_woww_name);
                add_cstring(ptv, &hf_woww_name);
                add_cstring(ptv, &hf_woww_name);
                add_cstring(ptv, &hf_woww_name);
                for (i = 0; i < 6; ++i) {
                    ptvcursor_add(ptv, hf_woww_raw_data, 4, ENC_LITTLE_ENDIAN);
                }
            }
            break;
        case SMSG_GAMEOBJECT_RESET_STATE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_GAMEOBJECT_SPAWN_ANIM:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_GMTICKET_CREATE:
            ptvcursor_add(ptv, hf_woww_gm_ticket_response, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_GMTICKET_DELETETICKET:
            ptvcursor_add(ptv, hf_woww_gm_ticket_response, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_GMTICKET_GETTICKET:
            ptvcursor_add_ret_uint(ptv, hf_woww_gm_ticket_status, 4, ENC_LITTLE_ENDIAN, &status);
            if (status == GM_TICKET_STATUS_HAS_TEXT) {
                add_cstring(ptv, &hf_woww_text);
                ptvcursor_add(ptv, hf_woww_gm_ticket_type, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_days_since_ticket_creation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_days_since_oldest_ticket_creation, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_days_since_last_updated, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_gm_ticket_escalation_status, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_read_by_gm, 1, ENC_NA);
            }
            break;
        case SMSG_GMTICKET_SYSTEMSTATUS:
            ptvcursor_add(ptv, hf_woww_gm_ticket_queue_status, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_GMTICKET_UPDATETEXT:
            ptvcursor_add(ptv, hf_woww_gm_ticket_response, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_GM_TICKET_STATUS_UPDATE:
            ptvcursor_add(ptv, hf_woww_gm_ticket_status_response, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_GOSSIP_MESSAGE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_title_text_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_gossip_items, 4, ENC_LITTLE_ENDIAN, &amount_of_gossip_items);
            for (i = 0; i < amount_of_gossip_items; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "GossipItem");
                ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_icon, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_coded, 1, ENC_NA);
                add_cstring(ptv, &hf_woww_message);
                ptvcursor_pop_subtree(ptv);
            }
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_quests, 4, ENC_LITTLE_ENDIAN, &amount_of_quests);
            for (i = 0; i < amount_of_quests; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItem");
                ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_quest_icon, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_level, 4, ENC_LITTLE_ENDIAN);
                add_cstring(ptv, &hf_woww_title);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_GOSSIP_POI:
            ptvcursor_add(ptv, hf_woww_flags, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector2d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_icon, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_data, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_location_name);
            break;
        case SMSG_GROUP_DECLINE:
            add_cstring(ptv, &hf_woww_name);
            break;
        case SMSG_GROUP_INVITE:
            add_cstring(ptv, &hf_woww_name);
            break;
        case SMSG_GROUP_JOINED_BATTLEGROUND:
            ptvcursor_add(ptv, hf_woww_bg_type_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_GROUP_LIST:
            ptvcursor_add(ptv, hf_woww_group_type, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_own_flags, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_members, 4, ENC_LITTLE_ENDIAN, &amount_of_members);
            for (i = 0; i < amount_of_members; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "GroupListMember");
                add_cstring(ptv, &hf_woww_name);
                ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_is_online, 1, ENC_NA);
                ptvcursor_pop_subtree(ptv);
            }
            ptvcursor_add(ptv, hf_woww_leader, 8, ENC_LITTLE_ENDIAN);
            len = offset_packet_end - ptvcursor_current_offset(ptv);
            if (len > 0) {
                ptvcursor_add(ptv, hf_woww_group_loot_setting, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_master_loot, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_quality, 1, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_GROUP_SET_LEADER:
            add_cstring(ptv, &hf_woww_name);
            break;
        case SMSG_GUILD_COMMAND_RESULT:
            ptvcursor_add(ptv, hf_woww_guild_command, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_string);
            ptvcursor_add(ptv, hf_woww_guild_command_result, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_GUILD_EVENT:
            ptvcursor_add(ptv, hf_woww_guild_event, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_events, 1, ENC_LITTLE_ENDIAN, &amount_of_events);
            for (i = 0; i < amount_of_events; ++i) {
                add_cstring(ptv, &hf_woww_event_descriptions);
            }
            break;
        case SMSG_GUILD_INFO:
            add_cstring(ptv, &hf_woww_guild_name);
            ptvcursor_add(ptv, hf_woww_created_day, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_created_month, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_created_year, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_amount_of_characters_in_guild, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_amount_of_accounts_in_guild, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_GUILD_INVITE:
            add_cstring(ptv, &hf_woww_player_name);
            add_cstring(ptv, &hf_woww_guild_name);
            break;
        case SMSG_GUILD_QUERY_RESPONSE:
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_name);
            for (i = 0; i < 10; ++i) {
                add_cstring(ptv, &hf_woww_rank_names);
            }
            ptvcursor_add(ptv, hf_woww_emblem_style, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_emblem_color, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_border_style, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_border_color, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_background_color, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_GUILD_ROSTER:
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_members, 4, ENC_LITTLE_ENDIAN, &amount_of_members);
            add_cstring(ptv, &hf_woww_motd);
            add_cstring(ptv, &hf_woww_guild_info);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_rights, 4, ENC_LITTLE_ENDIAN, &amount_of_rights);
            for (i = 0; i < amount_of_rights; ++i) {
                ptvcursor_add(ptv, hf_woww_rights, 4, ENC_LITTLE_ENDIAN);
            }
            for (i = 0; i < amount_of_members; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "GuildMember");
                ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add_ret_uint(ptv, hf_woww_guild_member_status, 1, ENC_LITTLE_ENDIAN, &status);
                add_cstring(ptv, &hf_woww_name);
                ptvcursor_add(ptv, hf_woww_rank, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_level, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_class, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
                if (status == GUILD_MEMBER_STATUS_OFFLINE) {
                    ptvcursor_add(ptv, hf_woww_time_offline, 4, ENC_LITTLE_ENDIAN);
                }
                add_cstring(ptv, &hf_woww_public_note);
                add_cstring(ptv, &hf_woww_officer_note);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_IGNORE_LIST:
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_ignored, 1, ENC_LITTLE_ENDIAN, &amount_of_ignored);
            for (i = 0; i < amount_of_ignored; ++i) {
                ptvcursor_add(ptv, hf_woww_ignored, 8, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_INITIALIZE_FACTIONS:
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_factions, 4, ENC_LITTLE_ENDIAN, &amount_of_factions);
            for (i = 0; i < amount_of_factions; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "FactionInitializer");
                ptvcursor_add(ptv, hf_woww_faction_flag, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_standing, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_INITIAL_SPELLS:
            ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_spell_count, 2, ENC_LITTLE_ENDIAN, &spell_count);
            for (i = 0; i < spell_count; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "InitialSpell");
                ptvcursor_add(ptv, hf_woww_spell_id, 2, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_unknown_int, 2, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            ptvcursor_add_ret_uint(ptv, hf_woww_cooldown_count, 2, ENC_LITTLE_ENDIAN, &cooldown_count);
            for (i = 0; i < cooldown_count; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "CooldownSpell");
                ptvcursor_add(ptv, hf_woww_spell_id, 2, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_id, 2, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_spell_category, 2, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cooldown_in_msecs, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_category_cooldown_in_msecs, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_INIT_WORLD_STATES:
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_states, 2, ENC_LITTLE_ENDIAN, &amount_of_states);
            for (i = 0; i < amount_of_states; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "WorldState");
                ptvcursor_add(ptv, hf_woww_state, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_value, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_INSPECT:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_INSTANCE_RESET:
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_INSTANCE_RESET_FAILED:
            ptvcursor_add(ptv, hf_woww_instance_reset_failed_reason, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_INSTANCE_SAVE_CREATED:
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_INVALIDATE_PLAYER:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_INVENTORY_CHANGE_FAILURE:
            ptvcursor_add_ret_uint(ptv, hf_woww_inventory_result, 1, ENC_LITTLE_ENDIAN, &result);
            if (result == INVENTORY_RESULT_CANT_EQUIP_LEVEL_I) {
                ptvcursor_add(ptv, hf_woww_required_level, 4, ENC_LITTLE_ENDIAN);
            }
            if (result != INVENTORY_RESULT_OK) {
                ptvcursor_add(ptv, hf_woww_item, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_bag_type_subclass, 1, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_ITEM_COOLDOWN:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_ITEM_ENCHANT_TIME_UPDATE:
            ptvcursor_add(ptv, hf_woww_item, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_slot, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_duration, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_player, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_ITEM_NAME_QUERY_RESPONSE:
            ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_item_name);
            break;
        case SMSG_ITEM_PUSH_RESULT:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_new_item_source, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_new_item_creation_type, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_new_item_chat_alert, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_bag_slot, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_slot, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_suffix_factor, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_ITEM_QUERY_SINGLE_RESPONSE:
            ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
            len = offset_packet_end - ptvcursor_current_offset(ptv);
            if (len > 0) {
                ptvcursor_add(ptv, hf_woww_item_class, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_sub_class, 4, ENC_LITTLE_ENDIAN);
                add_cstring(ptv, &hf_woww_name);
                add_cstring(ptv, &hf_woww_name);
                add_cstring(ptv, &hf_woww_name);
                add_cstring(ptv, &hf_woww_name);
                ptvcursor_add(ptv, hf_woww_item_display_info, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_quality, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_flags, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_buy_price, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sell_price, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_inventory_type, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_allowed_class, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_allowed_race, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_level, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_required_level, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_required_skill, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_required_skill_rank, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_required_spell, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_required_honor_rank, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_required_city_rank, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_required_reputation_faction, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_required_reputation_rank, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_max_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_stackable, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_container_slots, 4, ENC_LITTLE_ENDIAN);
                for (i = 0; i < 10; ++i) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "ItemStat");
                    ptvcursor_add(ptv, hf_woww_item_stat_type, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_item_stat_value, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                for (i = 0; i < 5; ++i) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "ItemDamageType");
                    ptvcursor_add(ptv, hf_woww_damage_minimum, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_damage_maximum, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_damage_type, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                ptvcursor_add(ptv, hf_woww_armor, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_holy_resistance, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_fire_resistance, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_nature_resistance, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_frost_resistance, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_shadow_resistance, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_arcane_resistance, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_delay, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_ammo_type, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_ranged_range_modification, 4, ENC_LITTLE_ENDIAN);
                for (i = 0; i < 5; ++i) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "ItemSpells");
                    ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_spell_trigger, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_spell_charges, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_spell_ppm_rate, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_spell_cooldown, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_spell_category, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_spell_category_cooldown, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                ptvcursor_add(ptv, hf_woww_bonding, 4, ENC_LITTLE_ENDIAN);
                add_cstring(ptv, &hf_woww_description);
                ptvcursor_add(ptv, hf_woww_page_text, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_language_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_page_material, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_start_quest, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_lock_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_material, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_sheath, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_random_property, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_block, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_set, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_max_durability, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_bag_family, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_ITEM_TEXT_QUERY_RESPONSE:
            ptvcursor_add(ptv, hf_woww_item_text_id, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_text);
            break;
        case SMSG_ITEM_TIME_UPDATE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_duration, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_LEARNED_SPELL:
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_LEVELUP_INFO:
            ptvcursor_add(ptv, hf_woww_new_level, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_health, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_mana, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_rage, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_focus, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_energy, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_happiness, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_strength, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_agility, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_stamina, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_intellect, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_spirit, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_LIST_INVENTORY:
            ptvcursor_add(ptv, hf_woww_vendor, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_items, 1, ENC_LITTLE_ENDIAN, &amount_of_items);
            for (i = 0; i < amount_of_items; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "ListInventoryItem");
                ptvcursor_add(ptv, hf_woww_item_stack_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_display_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_max_items, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_price, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_max_durability, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_durability, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_LOGIN_SETTIMESPEED:
            ptvcursor_add(ptv, hf_woww_datetime, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_timescale, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_LOGIN_VERIFY_WORLD:
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_LOGOUT_RESPONSE:
            ptvcursor_add(ptv, hf_woww_logout_result, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_logout_speed, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_LOG_XPGAIN:
            ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_total_exp, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_experience_award_type, 1, ENC_LITTLE_ENDIAN, &exp_type);
            if (exp_type == EXPERIENCE_AWARD_TYPE_NON_KILL) {
                ptvcursor_add(ptv, hf_woww_experience_without_rested, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_exp_group_bonus, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_LOOT_ALL_PASSED:
            ptvcursor_add(ptv, hf_woww_looted_target_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_loot_slot, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_random_suffix_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_LOOT_MASTER_LIST:
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_players, 1, ENC_LITTLE_ENDIAN, &amount_of_players);
            for (i = 0; i < amount_of_players; ++i) {
                ptvcursor_add(ptv, hf_woww_guids, 8, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_LOOT_MONEY_NOTIFY:
            ptvcursor_add(ptv, hf_woww_amount, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_LOOT_RELEASE_RESPONSE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_LOOT_REMOVED:
            ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_LOOT_RESPONSE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_loot_method, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_LOOT_ROLL:
            ptvcursor_add(ptv, hf_woww_creature_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_loot_slot, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_random_suffix, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_roll_number, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_roll_vote, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_LOOT_ROLL_WON:
            ptvcursor_add(ptv, hf_woww_looted_target_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_loot_slot, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_random_suffix, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_winning_player_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_winning_roll, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_roll_vote, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_LOOT_START_ROLL:
            ptvcursor_add(ptv, hf_woww_creature_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_loot_slot, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_random_suffix, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_countdown_time, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_MAIL_LIST_RESULT:
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_mails, 1, ENC_LITTLE_ENDIAN, &amount_of_mails);
            for (i = 0; i < amount_of_mails; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Mail");
                ptvcursor_add(ptv, hf_woww_message_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add_ret_uint(ptv, hf_woww_mail_type, 1, ENC_LITTLE_ENDIAN, &message_type);
                if (message_type == MAIL_TYPE_NORMAL) {
                    ptvcursor_add(ptv, hf_woww_sender, 8, ENC_LITTLE_ENDIAN);
                }
                else if (message_type == MAIL_TYPE_CREATURE
                 || message_type == MAIL_TYPE_GAMEOBJECT) {
                    ptvcursor_add(ptv, hf_woww_sender_id, 4, ENC_LITTLE_ENDIAN);
                }
                else if (message_type == MAIL_TYPE_AUCTION) {
                    ptvcursor_add(ptv, hf_woww_auction_id, 4, ENC_LITTLE_ENDIAN);
                }
                add_cstring(ptv, &hf_woww_subject);
                ptvcursor_add(ptv, hf_woww_item_text_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_stationery, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_enchant_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_random_property_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_suffix_factor, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_stack_size, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_spell_charges, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_max_durability, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_durability, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_money, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cash_on_delivery_amount, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_checked_timestamp, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_expiration_time, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_mail_template_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_MEETINGSTONE_JOINFAILED:
            ptvcursor_add(ptv, hf_woww_meeting_stone_failure, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_MEETINGSTONE_MEMBER_ADDED:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_MEETINGSTONE_SETQUEUE:
            ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_meeting_stone_status, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_MESSAGECHAT:
            ptvcursor_add_ret_uint(ptv, hf_woww_chat_type, 1, ENC_LITTLE_ENDIAN, &chat_type);
            ptvcursor_add(ptv, hf_woww_language, 4, ENC_LITTLE_ENDIAN);
            if (chat_type == CHAT_TYPE_MONSTER_WHISPER
 || chat_type == CHAT_TYPE_RAID_BOSS_EMOTE
 || chat_type == CHAT_TYPE_MONSTER_EMOTE) {
                add_sized_cstring(ptv, &hf_woww_monster_name);
                ptvcursor_add(ptv, hf_woww_monster, 8, ENC_LITTLE_ENDIAN);
            }
            else if (chat_type == CHAT_TYPE_SAY
             || chat_type == CHAT_TYPE_PARTY
             || chat_type == CHAT_TYPE_YELL) {
                ptvcursor_add(ptv, hf_woww_speech_bubble_credit, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_chat_credit, 8, ENC_LITTLE_ENDIAN);
            }
            else if (chat_type == CHAT_TYPE_MONSTER_SAY
             || chat_type == CHAT_TYPE_MONSTER_YELL) {
                ptvcursor_add(ptv, hf_woww_sender, 8, ENC_LITTLE_ENDIAN);
                add_sized_cstring(ptv, &hf_woww_sender_name);
                ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
            }
            else if (chat_type == CHAT_TYPE_CHANNEL) {
                add_cstring(ptv, &hf_woww_channel_name);
                ptvcursor_add(ptv, hf_woww_player_rank, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_player, 8, ENC_LITTLE_ENDIAN);
            }
            else {
                ptvcursor_add(ptv, hf_woww_sender, 8, ENC_LITTLE_ENDIAN);
            }
            add_sized_cstring(ptv, &hf_woww_message);
            ptvcursor_add(ptv, hf_woww_player_chat_tag, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_MONSTER_MOVE:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_spline_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_monster_move_type, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_MONSTER_MOVE_TRANSPORT:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_spline_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_monster_move_type, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_MOUNTRESULT:
            ptvcursor_add(ptv, hf_woww_mount_result, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_MOUNTSPECIAL_ANIM:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_MOVE_FEATHER_FALL:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_MOVE_KNOCK_BACK:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_movement_counter, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_v_cos, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_v_sin, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_horizontal_speed, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_vertical_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_MOVE_LAND_WALK:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_MOVE_NORMAL_FALL:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_MOVE_SET_HOVER:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_MOVE_UNSET_HOVER:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_MOVE_WATER_WALK:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_counter, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_NAME_QUERY_RESPONSE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_character_name);
            add_cstring(ptv, &hf_woww_realm_name);
            ptvcursor_add(ptv, hf_woww_race, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_gender, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_class, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_NEW_WORLD:
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_NOTIFICATION:
            add_cstring(ptv, &hf_woww_notification);
            break;
        case SMSG_NPC_TEXT_UPDATE:
            ptvcursor_add(ptv, hf_woww_text_id, 4, ENC_LITTLE_ENDIAN);
            for (i = 0; i < 8; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "NpcTextUpdate");
                ptvcursor_add(ptv, hf_woww_probability, 4, ENC_LITTLE_ENDIAN);
                for (i = 0; i < 2; ++i) {
                    add_cstring(ptv, &hf_woww_texts);
                }
                ptvcursor_add(ptv, hf_woww_language, 4, ENC_LITTLE_ENDIAN);
                for (i = 0; i < 3; ++i) {
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "NpcTextUpdateEmote");
                    ptvcursor_add(ptv, hf_woww_delay, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_emote_int, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_pop_subtree(ptv);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_OPEN_CONTAINER:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PAGE_TEXT_QUERY_RESPONSE:
            ptvcursor_add(ptv, hf_woww_page_id, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_text);
            ptvcursor_add(ptv, hf_woww_next_page_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PARTYKILLLOG:
            ptvcursor_add(ptv, hf_woww_player_with_killing_blow, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_victim, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PARTY_COMMAND_RESULT:
            ptvcursor_add(ptv, hf_woww_party_operation, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_member);
            ptvcursor_add(ptv, hf_woww_party_result, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PARTY_MEMBER_STATS:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add_ret_uint(ptv, hf_woww_group_update_flags, 4, ENC_LITTLE_ENDIAN, &mask);
            if (mask & GROUP_UPDATE_FLAGS_FLAG_STATUS) {
                ptvcursor_add(ptv, hf_woww_group_member_online_status, 1, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_CUR_HP) {
                ptvcursor_add(ptv, hf_woww_current_health, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_MAX_HP) {
                ptvcursor_add(ptv, hf_woww_max_health, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_POWER_TYPE) {
                ptvcursor_add(ptv, hf_woww_power, 1, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_CUR_POWER) {
                ptvcursor_add(ptv, hf_woww_current_power, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_MAX_POWER) {
                ptvcursor_add(ptv, hf_woww_max_power, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_LEVEL) {
                ptvcursor_add(ptv, hf_woww_level, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_ZONE) {
                ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_POSITION) {
                ptvcursor_add(ptv, hf_woww_position_x_int, 2, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_position_y_int, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_AURAS) {
                add_aura_mask(ptv);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_NAME) {
                add_cstring(ptv, &hf_woww_pet_name);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_MODEL_ID) {
                ptvcursor_add(ptv, hf_woww_pet_display_id, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_CUR_HP) {
                ptvcursor_add(ptv, hf_woww_pet_current_health, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_MAX_HP) {
                ptvcursor_add(ptv, hf_woww_pet_max_health, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_POWER_TYPE) {
                ptvcursor_add(ptv, hf_woww_power, 1, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_CUR_POWER) {
                ptvcursor_add(ptv, hf_woww_pet_current_power, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_MAX_POWER) {
                ptvcursor_add(ptv, hf_woww_pet_max_power, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_AURAS) {
                add_aura_mask(ptv);
            }
            break;
        case SMSG_PARTY_MEMBER_STATS_FULL:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add_ret_uint(ptv, hf_woww_group_update_flags, 4, ENC_LITTLE_ENDIAN, &mask);
            if (mask & GROUP_UPDATE_FLAGS_FLAG_STATUS) {
                ptvcursor_add(ptv, hf_woww_group_member_online_status, 1, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_CUR_HP) {
                ptvcursor_add(ptv, hf_woww_current_health, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_MAX_HP) {
                ptvcursor_add(ptv, hf_woww_max_health, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_POWER_TYPE) {
                ptvcursor_add(ptv, hf_woww_power, 1, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_CUR_POWER) {
                ptvcursor_add(ptv, hf_woww_current_power, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_MAX_POWER) {
                ptvcursor_add(ptv, hf_woww_max_power, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_LEVEL) {
                ptvcursor_add(ptv, hf_woww_level, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_ZONE) {
                ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_POSITION) {
                ptvcursor_add(ptv, hf_woww_position_x_int, 2, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_position_y_int, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_AURAS) {
                add_aura_mask(ptv);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_NAME) {
                add_cstring(ptv, &hf_woww_pet_name);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_MODEL_ID) {
                ptvcursor_add(ptv, hf_woww_pet_display_id, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_CUR_HP) {
                ptvcursor_add(ptv, hf_woww_pet_current_health, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_MAX_HP) {
                ptvcursor_add(ptv, hf_woww_pet_max_health, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_POWER_TYPE) {
                ptvcursor_add(ptv, hf_woww_power, 1, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_CUR_POWER) {
                ptvcursor_add(ptv, hf_woww_pet_current_power, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_MAX_POWER) {
                ptvcursor_add(ptv, hf_woww_pet_max_power, 2, ENC_LITTLE_ENDIAN);
            }
            if (mask & GROUP_UPDATE_FLAGS_FLAG_PET_AURAS) {
                add_aura_mask(ptv);
            }
            break;
        case SMSG_PAUSE_MIRROR_TIMER:
            ptvcursor_add(ptv, hf_woww_timer_type, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_is_frozen, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PERIODICAURALOG:
            add_packed_guid(ptv, pinfo);
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_auras, 4, ENC_LITTLE_ENDIAN, &amount_of_auras);
            for (i = 0; i < amount_of_auras; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "AuraLog");
                ptvcursor_add_ret_uint(ptv, hf_woww_aura_type, 4, ENC_LITTLE_ENDIAN, &aura_type);
                if (aura_type == AURA_TYPE_PERIODIC_DAMAGE
 || aura_type == AURA_TYPE_PERIODIC_DAMAGE_PERCENT) {
                    ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_spell_school, 1, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_absorbed, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_resisted, 4, ENC_LITTLE_ENDIAN);
                }
                else if (aura_type == AURA_TYPE_PERIODIC_HEAL
                 || aura_type == AURA_TYPE_OBS_MOD_HEALTH) {
                    ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
                }
                else if (aura_type == AURA_TYPE_OBS_MOD_MANA
                 || aura_type == AURA_TYPE_PERIODIC_ENERGIZE) {
                    ptvcursor_add(ptv, hf_woww_misc_value, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
                }
                else if (aura_type == AURA_TYPE_PERIODIC_MANA_LEECH) {
                    ptvcursor_add(ptv, hf_woww_misc_value, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_gain_multiplier, 4, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_PETITION_QUERY_RESPONSE:
            ptvcursor_add(ptv, hf_woww_petition_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_charter_owner, 8, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_guild_name);
            add_cstring(ptv, &hf_woww_body_text);
            ptvcursor_add(ptv, hf_woww_unknown_flags, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_minimum_signatures, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_maximum_signatures, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_deadline, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_issue_date, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_allowed_guild_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_allowed_classes, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_allowed_races, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_allowed_genders, 2, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_allowed_minimum_level, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_allowed_maximum_level, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_todo_amount_of_signers, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_number_of_choices, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PETITION_SHOWLIST:
            ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_petitions, 1, ENC_LITTLE_ENDIAN, &amount_of_petitions);
            for (i = 0; i < amount_of_petitions; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "PetitionShowlist");
                ptvcursor_add(ptv, hf_woww_index, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_charter_entry, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_charter_display_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_guild_charter_cost, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_PETITION_SHOW_SIGNATURES:
            ptvcursor_add(ptv, hf_woww_item_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_owner_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_petition_guid, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_signatures, 1, ENC_LITTLE_ENDIAN, &amount_of_signatures);
            for (i = 0; i < amount_of_signatures; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "PetitionSignature");
                ptvcursor_add(ptv, hf_woww_signer, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_PETITION_SIGN_RESULTS:
            ptvcursor_add(ptv, hf_woww_petition_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_owner_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_petition_result, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PET_ACTION_FEEDBACK:
            ptvcursor_add(ptv, hf_woww_pet_feedback, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PET_ACTION_SOUND:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_pet_talk_reason, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PET_CAST_FAILED:
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_spell_cast_result, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PET_DISMISS_SOUND:
            ptvcursor_add(ptv, hf_woww_sound_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            break;
        case SMSG_PET_MODE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_pet_react_state, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_pet_command_state, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_pet_enabled, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PET_NAME_QUERY_RESPONSE:
            ptvcursor_add(ptv, hf_woww_pet_number, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_name);
            ptvcursor_add(ptv, hf_woww_pet_name_timestamp, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PET_SPELLS:
            ptvcursor_add(ptv, hf_woww_pet, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_pet_react_state, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_pet_command_state, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 2, ENC_LITTLE_ENDIAN);
            for (i = 0; i < 10; ++i) {
                ptvcursor_add(ptv, hf_woww_action_bars, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_spells, 1, ENC_LITTLE_ENDIAN, &amount_of_spells);
            for (i = 0; i < amount_of_spells; ++i) {
                ptvcursor_add(ptv, hf_woww_spells, 4, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_cooldowns, 1, ENC_LITTLE_ENDIAN, &amount_of_cooldowns);
            for (i = 0; i < amount_of_cooldowns; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "PetSpellCooldown");
                ptvcursor_add(ptv, hf_woww_spell_id, 2, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_spell_category, 2, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cooldown_in_msecs, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_category_cooldown_in_msecs, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_PET_TAME_FAILURE:
            ptvcursor_add(ptv, hf_woww_pet_tame_failure_reason, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PET_UNLEARN_CONFIRM:
            ptvcursor_add(ptv, hf_woww_pet_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_talent_reset_cost, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PLAYED_TIME:
            ptvcursor_add(ptv, hf_woww_total_played_time, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_level_played_time, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PLAYERBOUND:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PLAY_MUSIC:
            ptvcursor_add(ptv, hf_woww_sound_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PLAY_OBJECT_SOUND:
            ptvcursor_add(ptv, hf_woww_sound_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PLAY_SOUND:
            ptvcursor_add(ptv, hf_woww_sound_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PLAY_SPELL_IMPACT:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_spell_visual_kit, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PLAY_SPELL_VISUAL:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_spell_art_kit, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PONG:
            ptvcursor_add(ptv, hf_woww_sequence_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PROCRESIST:
            ptvcursor_add(ptv, hf_woww_caster, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_log_format, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_PVP_CREDIT:
            ptvcursor_add(ptv, hf_woww_honor_points, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_victim, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_pvp_rank, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_QUERY_TIME_RESPONSE:
            ptvcursor_add(ptv, hf_woww_time, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_QUESTGIVER_OFFER_REWARD:
            ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_title);
            add_cstring(ptv, &hf_woww_offer_reward_text);
            ptvcursor_add(ptv, hf_woww_enable_next, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_emotes, 4, ENC_LITTLE_ENDIAN, &amount_of_emotes);
            for (i = 0; i < amount_of_emotes; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "NpcTextUpdateEmote");
                ptvcursor_add(ptv, hf_woww_delay, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_emote_int, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_choice_item_rewards, 4, ENC_LITTLE_ENDIAN, &amount_of_choice_item_rewards);
            for (i = 0; i < amount_of_choice_item_rewards; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemReward");
                ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_item_rewards, 4, ENC_LITTLE_ENDIAN, &amount_of_item_rewards);
            for (i = 0; i < amount_of_item_rewards; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemReward");
                ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            ptvcursor_add(ptv, hf_woww_money_reward, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_reward_spell, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_reward_spell_cast, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_QUESTGIVER_QUEST_COMPLETE:
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_experience_reward, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_money_reward, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_item_rewards, 4, ENC_LITTLE_ENDIAN, &amount_of_item_rewards);
            for (i = 0; i < amount_of_item_rewards; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemReward");
                ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_QUESTGIVER_QUEST_DETAILS:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_title);
            add_cstring(ptv, &hf_woww_details);
            add_cstring(ptv, &hf_woww_objectives);
            ptvcursor_add(ptv, hf_woww_auto_finish, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_choice_item_rewards, 4, ENC_LITTLE_ENDIAN, &amount_of_choice_item_rewards);
            for (i = 0; i < amount_of_choice_item_rewards; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemReward");
                ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_item_rewards, 4, ENC_LITTLE_ENDIAN, &amount_of_item_rewards);
            for (i = 0; i < amount_of_item_rewards; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemReward");
                ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            ptvcursor_add(ptv, hf_woww_money_reward, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_reward_spell, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_emotes, 4, ENC_LITTLE_ENDIAN, &amount_of_emotes);
            for (i = 0; i < amount_of_emotes; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestDetailsEmote");
                ptvcursor_add(ptv, hf_woww_emote_int, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_emote_delay_in_msecs, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_QUESTGIVER_QUEST_FAILED:
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_failed_reason, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_QUESTGIVER_QUEST_INVALID:
            ptvcursor_add(ptv, hf_woww_quest_failed_reason, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_QUESTGIVER_QUEST_LIST:
            ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_title);
            ptvcursor_add(ptv, hf_woww_emote_delay, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_emote_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_entries, 1, ENC_LITTLE_ENDIAN, &amount_of_entries);
            for (i = 0; i < amount_of_entries; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItem");
                ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_quest_icon, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_level, 4, ENC_LITTLE_ENDIAN);
                add_cstring(ptv, &hf_woww_title);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_QUESTGIVER_REQUEST_ITEMS:
            ptvcursor_add(ptv, hf_woww_npc, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_title);
            add_cstring(ptv, &hf_woww_request_items_text);
            ptvcursor_add(ptv, hf_woww_emote_delay, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_emote_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_auto_finish, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_required_money, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_required_items, 4, ENC_LITTLE_ENDIAN, &amount_of_required_items);
            for (i = 0; i < amount_of_required_items; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemRequirement");
                ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_display_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_completable, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_flags, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_flags, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_QUESTGIVER_STATUS:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_giver_status, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_QUESTUPDATE_ADD_ITEM:
            ptvcursor_add(ptv, hf_woww_required_item_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_items_required, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_QUESTUPDATE_ADD_KILL:
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_create_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_kill_count, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_required_kill_count, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_QUESTUPDATE_COMPLETE:
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_QUESTUPDATE_FAILED:
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_QUESTUPDATE_FAILEDTIMER:
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_QUEST_CONFIRM_ACCEPT:
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_quest_title);
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_QUEST_QUERY_RESPONSE:
            ptvcursor_add(ptv, hf_woww_quest_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_method, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_level, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_zone_or_sort, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_type, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_reputation_objective_faction, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_reputation_objective_value, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_required_opposite_faction, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_required_opposite_reputation_value, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_next_quest_in_chain, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_money_reward, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_max_level_money_reward, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_reward_spell, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_source_item_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_quest_flags, 4, ENC_LITTLE_ENDIAN);
            for (i = 0; i < 4; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemReward");
                ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            for (i = 0; i < 6; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestItemReward");
                ptvcursor_add(ptv, hf_woww_item, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            ptvcursor_add(ptv, hf_woww_point_map_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_position_x, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_position_y, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_point_opt, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_title);
            add_cstring(ptv, &hf_woww_objective_text);
            add_cstring(ptv, &hf_woww_details);
            add_cstring(ptv, &hf_woww_end_text);
            for (i = 0; i < 4; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "QuestObjective");
                ptvcursor_add(ptv, hf_woww_creature_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_kill_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_required_item_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_required_item_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            for (i = 0; i < 4; ++i) {
                add_cstring(ptv, &hf_woww_objective_texts);
            }
            break;
        case SMSG_RAID_GROUP_ONLY:
            ptvcursor_add(ptv, hf_woww_homebind_timer, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_raid_group_error, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_RAID_INSTANCE_INFO:
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_raid_infos, 4, ENC_LITTLE_ENDIAN, &amount_of_raid_infos);
            for (i = 0; i < amount_of_raid_infos; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "RaidInfo");
                ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_reset_time, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_instance_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_RAID_INSTANCE_MESSAGE:
            ptvcursor_add(ptv, hf_woww_raid_instance_message, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_time_left, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_READ_ITEM_FAILED:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_READ_ITEM_OK:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_RECEIVED_MAIL:
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_REMOVED_SPELL:
            ptvcursor_add(ptv, hf_woww_spell_id, 2, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_RESISTLOG:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_float, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_float, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_RESURRECT_REQUEST:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            add_sized_cstring(ptv, &hf_woww_name);
            ptvcursor_add(ptv, hf_woww_caster_is_spirit_healer, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_respect_resurrection_timer, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SELL_ITEM:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_sell_item_result, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SEND_MAIL_RESULT:
            len = offset_packet_end - ptvcursor_current_offset(ptv);
            ptvcursor_add(ptv, hf_woww_unimplemented, len, ENC_NA);
            break;
        case SMSG_SERVER_MESSAGE:
            ptvcursor_add(ptv, hf_woww_server_message_type, 4, ENC_LITTLE_ENDIAN);
            add_cstring(ptv, &hf_woww_message);
            break;
        case SMSG_SET_FACTION_STANDING:
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_factions, 4, ENC_LITTLE_ENDIAN, &amount_of_factions);
            for (i = 0; i < amount_of_factions; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Faction");
                ptvcursor_add(ptv, hf_woww_reputation_list_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_standing, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_SET_FACTION_VISIBLE:
            ptvcursor_add(ptv, hf_woww_reputation_list_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SET_FLAT_SPELL_MODIFIER:
            ptvcursor_add(ptv, hf_woww_eff, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_op, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_value, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SET_FORCED_REACTIONS:
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_reactions, 4, ENC_LITTLE_ENDIAN, &amount_of_reactions);
            for (i = 0; i < amount_of_reactions; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "ForcedReaction");
                ptvcursor_add(ptv, hf_woww_faction_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_reputation_rank, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_SET_PCT_SPELL_MODIFIER:
            ptvcursor_add(ptv, hf_woww_eff, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_op, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_value, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SET_PROFICIENCY:
            ptvcursor_add(ptv, hf_woww_item_class, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_item_sub_class_mask, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SET_REST_START:
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SHOWTAXINODES:
            ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_nearest_node, 4, ENC_LITTLE_ENDIAN);
            while (ptvcursor_current_offset(ptv) < offset_packet_end) {
                ptvcursor_add(ptv, hf_woww_nodes, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_SHOW_BANK:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPELLDAMAGESHIELD:
            ptvcursor_add(ptv, hf_woww_victim_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_caster_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_spell_school, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPELLDISPELLOG:
            ptvcursor_add(ptv, hf_woww_victim, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_caster, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_spells, 4, ENC_LITTLE_ENDIAN, &amount_of_spells);
            for (i = 0; i < amount_of_spells; ++i) {
                ptvcursor_add(ptv, hf_woww_spells, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_SPELLENERGIZELOG:
            add_packed_guid(ptv, pinfo);
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_power_type, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPELLHEALLOG:
            add_packed_guid(ptv, pinfo);
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_critical, 1, ENC_NA);
            break;
        case SMSG_SPELLINSTAKILLLOG:
            ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPELLLOGEXECUTE:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_effects, 4, ENC_LITTLE_ENDIAN, &amount_of_effects);
            for (i = 0; i < amount_of_effects; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellLog");
                ptvcursor_add_ret_uint(ptv, hf_woww_spell_effect, 4, ENC_LITTLE_ENDIAN, &effect);
                ptvcursor_add(ptv, hf_woww_amount_of_logs, 4, ENC_LITTLE_ENDIAN);
                if (effect == SPELL_EFFECT_POWER_DRAIN) {
                    ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_unknown_float, 4, ENC_LITTLE_ENDIAN);
                }
                else if (effect == SPELL_EFFECT_ADD_EXTRA_ATTACKS) {
                    ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
                }
                else if (effect == SPELL_EFFECT_INTERRUPT_CAST) {
                    ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_interrupted_spell, 4, ENC_LITTLE_ENDIAN);
                }
                else if (effect == SPELL_EFFECT_DURABILITY_DAMAGE) {
                    ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
                    ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
                }
                else if (effect == SPELL_EFFECT_CREATE_ITEM) {
                    ptvcursor_add(ptv, hf_woww_spell_effect_item_type, 4, ENC_LITTLE_ENDIAN);
                }
                else if (effect == SPELL_EFFECT_FEED_PET) {
                    ptvcursor_add(ptv, hf_woww_item_target_entry, 4, ENC_LITTLE_ENDIAN);
                }
                else if (effect == SPELL_EFFECT_RESURRECT
                 || effect == SPELL_EFFECT_DISPEL
                 || effect == SPELL_EFFECT_THREAT
                 || effect == SPELL_EFFECT_DISTRACT
                 || effect == SPELL_EFFECT_SANCTUARY
                 || effect == SPELL_EFFECT_THREAT_ALL
                 || effect == SPELL_EFFECT_DISPEL_MECHANIC
                 || effect == SPELL_EFFECT_RESURRECT_NEW
                 || effect == SPELL_EFFECT_ATTACK_ME
                 || effect == SPELL_EFFECT_SKIN_PLAYER_CORPSE
                 || effect == SPELL_EFFECT_MODIFY_THREAT_PERCENT
                 || effect == SPELL_EFFECT_UNKNOWN126
                 || effect == SPELL_EFFECT_DISMISS_PET
                 || effect == SPELL_EFFECT_OPEN_LOCK
                 || effect == SPELL_EFFECT_OPEN_LOCK_ITEM
                 || effect == SPELL_EFFECT_INSTAKILL) {
                    ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_SPELLLOGMISS:
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_caster_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_targets, 4, ENC_LITTLE_ENDIAN, &amount_of_targets);
            for (i = 0; i < amount_of_targets; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellMiss");
                ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_spell_miss_info, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_SPELLNONMELEEDAMAGELOG:
            add_packed_guid(ptv, pinfo);
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_damage, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_spell_school, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_absorbed_damage, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_resisted, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_periodic_log, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unused, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_blocked, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_hit_info, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_extend_flag, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPELLORDAMAGE_IMMUNE:
            ptvcursor_add(ptv, hf_woww_caster_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_unknown_int, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPELL_COOLDOWN:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            while (ptvcursor_current_offset(ptv) < offset_packet_end) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellCooldownStatus");
                ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_cooldown_time_in_msecs, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_SPELL_DELAYED:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_delay_time, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPELL_FAILED_OTHER:
            ptvcursor_add(ptv, hf_woww_caster_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPELL_FAILURE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_spell_cast_result, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPELL_GO:
            add_packed_guid(ptv, pinfo);
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_cast_flags, 2, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_hits, 1, ENC_LITTLE_ENDIAN, &amount_of_hits);
            for (i = 0; i < amount_of_hits; ++i) {
                ptvcursor_add(ptv, hf_woww_hits, 8, ENC_LITTLE_ENDIAN);
            }
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_misses, 1, ENC_LITTLE_ENDIAN, &amount_of_misses);
            for (i = 0; i < amount_of_misses; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellMiss");
                ptvcursor_add(ptv, hf_woww_target_guid, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_spell_miss_info, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellCastTargets");
            ptvcursor_add_ret_uint(ptv, hf_woww_spell_cast_target_flags, 2, ENC_LITTLE_ENDIAN, &target_flags);
            if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT_ENEMY) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_GAMEOBJECT) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_LOCKED) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_ITEM) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_TRADE_ITEM) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_SOURCE_LOCATION) {
                ptvcursor_add(ptv, hf_woww_source_position_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_source_position_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_source_position_z, 4, ENC_LITTLE_ENDIAN);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_DEST_LOCATION) {
                ptvcursor_add(ptv, hf_woww_destination_position_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_destination_position_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_destination_position_z, 4, ENC_LITTLE_ENDIAN);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_STRING) {
                add_cstring(ptv, &hf_woww_target_string);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ALLY) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ENEMY) {
                add_packed_guid(ptv, pinfo);
            }
            ptvcursor_pop_subtree(ptv);
            if (flags & CAST_FLAGS_AMMO) {
                ptvcursor_add(ptv, hf_woww_ammo_display_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_ammo_inventory_type, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_SPELL_START:
            add_packed_guid(ptv, pinfo);
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_cast_flags, 2, ENC_LITTLE_ENDIAN, &flags);
            ptvcursor_add(ptv, hf_woww_timer, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellCastTargets");
            ptvcursor_add_ret_uint(ptv, hf_woww_spell_cast_target_flags, 2, ENC_LITTLE_ENDIAN, &target_flags);
            if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_UNIT_ENEMY) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_GAMEOBJECT) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_LOCKED) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_ITEM) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_TRADE_ITEM) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_SOURCE_LOCATION) {
                ptvcursor_add(ptv, hf_woww_source_position_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_source_position_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_source_position_z, 4, ENC_LITTLE_ENDIAN);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_DEST_LOCATION) {
                ptvcursor_add(ptv, hf_woww_destination_position_x, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_destination_position_y, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_destination_position_z, 4, ENC_LITTLE_ENDIAN);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_STRING) {
                add_cstring(ptv, &hf_woww_target_string);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ALLY) {
                add_packed_guid(ptv, pinfo);
            }
            if (target_flags & SPELL_CAST_TARGET_FLAGS_CORPSE_ENEMY) {
                add_packed_guid(ptv, pinfo);
            }
            ptvcursor_pop_subtree(ptv);
            if (flags & CAST_FLAGS_AMMO) {
                ptvcursor_add(ptv, hf_woww_ammo_display_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_ammo_inventory_type, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_SPELL_UPDATE_CHAIN_TARGETS:
            ptvcursor_add(ptv, hf_woww_caster, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_targets, 4, ENC_LITTLE_ENDIAN, &amount_of_targets);
            for (i = 0; i < amount_of_targets; ++i) {
                ptvcursor_add(ptv, hf_woww_targets, 8, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_SPIRIT_HEALER_CONFIRM:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPLINE_MOVE_FEATHER_FALL:
            add_packed_guid(ptv, pinfo);
            break;
        case SMSG_SPLINE_MOVE_LAND_WALK:
            add_packed_guid(ptv, pinfo);
            break;
        case SMSG_SPLINE_MOVE_NORMAL_FALL:
            add_packed_guid(ptv, pinfo);
            break;
        case SMSG_SPLINE_MOVE_ROOT:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPLINE_MOVE_SET_HOVER:
            add_packed_guid(ptv, pinfo);
            break;
        case SMSG_SPLINE_MOVE_SET_RUN_MODE:
            add_packed_guid(ptv, pinfo);
            break;
        case SMSG_SPLINE_MOVE_SET_WALK_MODE:
            add_packed_guid(ptv, pinfo);
            break;
        case SMSG_SPLINE_MOVE_START_SWIM:
            add_packed_guid(ptv, pinfo);
            break;
        case SMSG_SPLINE_MOVE_STOP_SWIM:
            add_packed_guid(ptv, pinfo);
            break;
        case SMSG_SPLINE_MOVE_UNROOT:
            add_packed_guid(ptv, pinfo);
            break;
        case SMSG_SPLINE_MOVE_UNSET_HOVER:
            add_packed_guid(ptv, pinfo);
            break;
        case SMSG_SPLINE_MOVE_WATER_WALK:
            add_packed_guid(ptv, pinfo);
            break;
        case SMSG_SPLINE_SET_RUN_BACK_SPEED:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPLINE_SET_RUN_SPEED:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPLINE_SET_SWIM_BACK_SPEED:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPLINE_SET_SWIM_SPEED:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPLINE_SET_TURN_RATE:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SPLINE_SET_WALK_SPEED:
            add_packed_guid(ptv, pinfo);
            ptvcursor_add(ptv, hf_woww_speed, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_STABLE_RESULT:
            ptvcursor_add(ptv, hf_woww_stable_result, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_STANDSTATE_UPDATE:
            ptvcursor_add(ptv, hf_woww_unit_stand_state, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_START_MIRROR_TIMER:
            ptvcursor_add(ptv, hf_woww_timer_type, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_time_remaining, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_duration, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_scale, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_is_frozen, 1, ENC_NA);
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_STOP_MIRROR_TIMER:
            ptvcursor_add(ptv, hf_woww_timer_type, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SUMMON_REQUEST:
            ptvcursor_add(ptv, hf_woww_summoner_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_zone_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_auto_decline_time_in_msecs, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_SUPERCEDED_SPELL:
            ptvcursor_add(ptv, hf_woww_new_spell_id, 2, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_old_spell_id, 2, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_TAXINODE_STATUS:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_taxi_mask_node_known, 1, ENC_NA);
            break;
        case SMSG_TEXT_EMOTE:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_text_emote, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_emote_enum, 4, ENC_LITTLE_ENDIAN);
            add_sized_cstring(ptv, &hf_woww_name);
            break;
        case SMSG_TRADE_STATUS:
            ptvcursor_add_ret_uint(ptv, hf_woww_trade_status, 4, ENC_LITTLE_ENDIAN, &status);
            if (status == TRADE_STATUS_BEGIN_TRADE) {
                ptvcursor_add(ptv, hf_woww_unknown_guid, 8, ENC_LITTLE_ENDIAN);
            }
            else if (status == TRADE_STATUS_CLOSE_WINDOW) {
                ptvcursor_add(ptv, hf_woww_inventory_result, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_target_error, 1, ENC_NA);
                ptvcursor_add(ptv, hf_woww_item_limit_category_id, 4, ENC_LITTLE_ENDIAN);
            }
            else if (status == TRADE_STATUS_ONLY_CONJURED
             || status == TRADE_STATUS_NOT_ON_TAPLIST) {
                ptvcursor_add(ptv, hf_woww_slot, 1, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_TRADE_STATUS_EXTENDED:
            ptvcursor_add(ptv, hf_woww_self_player, 1, ENC_NA);
            ptvcursor_add(ptv, hf_woww_trade_slot_count, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_trade_slot_count, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_money_in_trade, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_spell_on_lowest_slot, 4, ENC_LITTLE_ENDIAN);
            for (i = 0; i < 7; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TradeSlot");
                ptvcursor_add(ptv, hf_woww_trade_slot_number, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_display_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_stack_count, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_is_wrapped, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_gift_wrapper, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_enchantment, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_creator, 8, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_spell_charges, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_suffix_factor, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_item_random_properties_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_lock_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_max_durability, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_durability, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_TRAINER_BUY_FAILED:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_training_failure_reason, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_TRAINER_BUY_SUCCEEDED:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_TRAINER_LIST:
            ptvcursor_add(ptv, hf_woww_guid, 8, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_trainer_type, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_spells, 4, ENC_LITTLE_ENDIAN, &amount_of_spells);
            for (i = 0; i < amount_of_spells; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TrainerSpell");
                ptvcursor_add(ptv, hf_woww_spell, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_trainer_spell_state, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_spell_cost, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_talent_point_cost, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_first_rank, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_required_level, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_required_skill, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_required_skill_value, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_spell_chain_required, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_spell_chain_previous, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            add_cstring(ptv, &hf_woww_greeting);
            break;
        case SMSG_TRANSFER_ABORTED:
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_transfer_abort_reason, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_padding, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_TRANSFER_PENDING:
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            len = offset_packet_end - ptvcursor_current_offset(ptv);
            if (len > 0) {
                ptvcursor_add(ptv, hf_woww_transport, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_TRIGGER_CINEMATIC:
            ptvcursor_add(ptv, hf_woww_cinematic_sequence_id, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_TURN_IN_PETITION_RESULTS:
            ptvcursor_add(ptv, hf_woww_petition_result, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_TUTORIAL_FLAGS:
            for (i = 0; i < 8; ++i) {
                ptvcursor_add(ptv, hf_woww_tutorial_data, 4, ENC_LITTLE_ENDIAN);
            }
            break;
        case SMSG_UPDATE_AURA_DURATION:
            ptvcursor_add(ptv, hf_woww_aura_slot, 1, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_aura_duration, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_UPDATE_INSTANCE_OWNERSHIP:
            ptvcursor_add(ptv, hf_woww_has_been_saved, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_UPDATE_LAST_INSTANCE:
            ptvcursor_add(ptv, hf_woww_map, 4, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_UPDATE_OBJECT:
            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_objects, 4, ENC_LITTLE_ENDIAN, &amount_of_objects);
            ptvcursor_add(ptv, hf_woww_has_transport, 1, ENC_LITTLE_ENDIAN);
            for (i = 0; i < amount_of_objects; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Object");
                ptvcursor_add_ret_uint(ptv, hf_woww_update_type, 1, ENC_LITTLE_ENDIAN, &update_type);
                if (update_type == UPDATE_TYPE_VALUES) {
                    add_packed_guid(ptv, pinfo);
                    add_update_mask(ptv);
                }
                else if (update_type == UPDATE_TYPE_MOVEMENT) {
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementBlock");
                    ptvcursor_add_ret_uint(ptv, hf_woww_update_flag, 1, ENC_LITTLE_ENDIAN, &update_flag);
                    if (update_flag & UPDATE_FLAG_LIVING) {
                        ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                        ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                        ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_pop_subtree(ptv);
                        ptvcursor_add(ptv, hf_woww_living_orientation, 4, ENC_LITTLE_ENDIAN);
                        if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                            add_packed_guid(ptv, pinfo);
                            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_pop_subtree(ptv);
                            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_pop_subtree(ptv);
                        }
                        if (flags & MOVEMENT_FLAGS_SWIMMING) {
                            ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                        }
                        ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                        if (flags & MOVEMENT_FLAGS_JUMPING) {
                            ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                        }
                        if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                            ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                        }
                        ptvcursor_add(ptv, hf_woww_walking_speed, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_running_speed, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_backwards_running_speed, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_swimming_speed, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_backwards_swimming_speed, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_turn_rate, 4, ENC_LITTLE_ENDIAN);
                        if (flags & MOVEMENT_FLAGS_SPLINE_ENABLED) {
                            ptvcursor_add_ret_uint(ptv, hf_woww_spline_flag, 4, ENC_LITTLE_ENDIAN, &spline_flags);
                            if (spline_flags & SPLINE_FLAG_FINAL_ANGLE) {
                                ptvcursor_add(ptv, hf_woww_angle, 4, ENC_LITTLE_ENDIAN);
                            }
                            else if (spline_flags & SPLINE_FLAG_FINAL_TARGET) {
                                ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
                            }
                            else if (spline_flags & SPLINE_FLAG_FINAL_POINT) {
                                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                                ptvcursor_pop_subtree(ptv);
                            }
                            ptvcursor_add(ptv, hf_woww_time_passed, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_duration, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_nodes, 4, ENC_LITTLE_ENDIAN, &amount_of_nodes);
                            for (i = 0; i < amount_of_nodes; ++i) {
                                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                                ptvcursor_pop_subtree(ptv);
                            }
                            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_pop_subtree(ptv);
                        }
                    }
                    else if (update_flag & UPDATE_FLAG_HAS_POSITION) {
                        ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                        ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_pop_subtree(ptv);
                        ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    }
                    if (update_flag & UPDATE_FLAG_HIGH_GUID) {
                        ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
                    }
                    if (update_flag & UPDATE_FLAG_ALL) {
                        ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
                    }
                    if (update_flag & UPDATE_FLAG_MELEE_ATTACKING) {
                        add_packed_guid(ptv, pinfo);
                    }
                    if (update_flag & UPDATE_FLAG_TRANSPORT) {
                        ptvcursor_add(ptv, hf_woww_transport_progress_in_ms, 4, ENC_LITTLE_ENDIAN);
                    }
                    ptvcursor_pop_subtree(ptv);
                }
                else if (update_type == UPDATE_TYPE_CREATE_OBJECT
                 || update_type == UPDATE_TYPE_CREATE_OBJECT2) {
                    add_packed_guid(ptv, pinfo);
                    ptvcursor_add(ptv, hf_woww_object_type, 1, ENC_LITTLE_ENDIAN);
                    ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "MovementBlock");
                    ptvcursor_add_ret_uint(ptv, hf_woww_update_flag, 1, ENC_LITTLE_ENDIAN, &update_flag);
                    if (update_flag & UPDATE_FLAG_LIVING) {
                        ptvcursor_add_ret_uint(ptv, hf_woww_movement_flags, 4, ENC_LITTLE_ENDIAN, &flags);
                        ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                        ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_pop_subtree(ptv);
                        ptvcursor_add(ptv, hf_woww_living_orientation, 4, ENC_LITTLE_ENDIAN);
                        if (flags & MOVEMENT_FLAGS_ON_TRANSPORT) {
                            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TransportInfo");
                            add_packed_guid(ptv, pinfo);
                            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_pop_subtree(ptv);
                            ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_timestamp, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_pop_subtree(ptv);
                        }
                        if (flags & MOVEMENT_FLAGS_SWIMMING) {
                            ptvcursor_add(ptv, hf_woww_pitch, 4, ENC_LITTLE_ENDIAN);
                        }
                        ptvcursor_add(ptv, hf_woww_fall_time, 4, ENC_LITTLE_ENDIAN);
                        if (flags & MOVEMENT_FLAGS_JUMPING) {
                            ptvcursor_add(ptv, hf_woww_z_speed, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_cos_angle, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_sin_angle, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_xy_speed, 4, ENC_LITTLE_ENDIAN);
                        }
                        if (flags & MOVEMENT_FLAGS_SPLINE_ELEVATION) {
                            ptvcursor_add(ptv, hf_woww_spline_elevation, 4, ENC_LITTLE_ENDIAN);
                        }
                        ptvcursor_add(ptv, hf_woww_walking_speed, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_running_speed, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_backwards_running_speed, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_swimming_speed, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_backwards_swimming_speed, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_turn_rate, 4, ENC_LITTLE_ENDIAN);
                        if (flags & MOVEMENT_FLAGS_SPLINE_ENABLED) {
                            ptvcursor_add_ret_uint(ptv, hf_woww_spline_flag, 4, ENC_LITTLE_ENDIAN, &spline_flags);
                            if (spline_flags & SPLINE_FLAG_FINAL_ANGLE) {
                                ptvcursor_add(ptv, hf_woww_angle, 4, ENC_LITTLE_ENDIAN);
                            }
                            else if (spline_flags & SPLINE_FLAG_FINAL_TARGET) {
                                ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
                            }
                            else if (spline_flags & SPLINE_FLAG_FINAL_POINT) {
                                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                                ptvcursor_pop_subtree(ptv);
                            }
                            ptvcursor_add(ptv, hf_woww_time_passed, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_duration, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_id, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add_ret_uint(ptv, hf_woww_amount_of_nodes, 4, ENC_LITTLE_ENDIAN, &amount_of_nodes);
                            for (i = 0; i < amount_of_nodes; ++i) {
                                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                                ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                                ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                                ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                                ptvcursor_pop_subtree(ptv);
                            }
                            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                            ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                            ptvcursor_pop_subtree(ptv);
                        }
                    }
                    else if (update_flag & UPDATE_FLAG_HAS_POSITION) {
                        ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Vector3d");
                        ptvcursor_add(ptv, hf_woww_x, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_y, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_add(ptv, hf_woww_z, 4, ENC_LITTLE_ENDIAN);
                        ptvcursor_pop_subtree(ptv);
                        ptvcursor_add(ptv, hf_woww_orientation, 4, ENC_LITTLE_ENDIAN);
                    }
                    if (update_flag & UPDATE_FLAG_HIGH_GUID) {
                        ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
                    }
                    if (update_flag & UPDATE_FLAG_ALL) {
                        ptvcursor_add(ptv, hf_woww_unknown_int, 4, ENC_LITTLE_ENDIAN);
                    }
                    if (update_flag & UPDATE_FLAG_MELEE_ATTACKING) {
                        add_packed_guid(ptv, pinfo);
                    }
                    if (update_flag & UPDATE_FLAG_TRANSPORT) {
                        ptvcursor_add(ptv, hf_woww_transport_progress_in_ms, 4, ENC_LITTLE_ENDIAN);
                    }
                    ptvcursor_pop_subtree(ptv);
                    add_update_mask(ptv);
                }
                else if (update_type == UPDATE_TYPE_OUT_OF_RANGE_OBJECTS
                 || update_type == UPDATE_TYPE_NEAR_OBJECTS) {
                    ptvcursor_add_ret_uint(ptv, hf_woww_count, 4, ENC_LITTLE_ENDIAN, &count);
                    for (i = 0; i < count; ++i) {
                        add_packed_guid(ptv, pinfo);
                    }
                }
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_UPDATE_WORLD_STATE:
            ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "WorldState");
            ptvcursor_add(ptv, hf_woww_state, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_value, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_pop_subtree(ptv);
            break;
        case SMSG_WARDEN_DATA:
            len = offset_packet_end - ptvcursor_current_offset(ptv);
            ptvcursor_add(ptv, hf_woww_unimplemented, len, ENC_NA);
            break;
        case SMSG_WEATHER:
            ptvcursor_add(ptv, hf_woww_weather_type, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_grade, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_sound_id, 4, ENC_LITTLE_ENDIAN);
            ptvcursor_add(ptv, hf_woww_weather_change_type, 1, ENC_LITTLE_ENDIAN);
            break;
        case SMSG_WHO:
            ptvcursor_add_ret_uint(ptv, hf_woww_listed_players, 4, ENC_LITTLE_ENDIAN, &listed_players);
            ptvcursor_add(ptv, hf_woww_online_players, 4, ENC_LITTLE_ENDIAN);
            for (i = 0; i < listed_players; ++i) {
                ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "WhoPlayer");
                add_cstring(ptv, &hf_woww_name);
                add_cstring(ptv, &hf_woww_guild);
                ptvcursor_add(ptv, hf_woww_level, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_class, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_race, 1, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_zone_id, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_add(ptv, hf_woww_party_status, 4, ENC_LITTLE_ENDIAN);
                ptvcursor_pop_subtree(ptv);
            }
            break;
        case SMSG_WHOIS:
            add_cstring(ptv, &hf_woww_message);
            break;
        case SMSG_ZONE_UNDER_ATTACK:
            ptvcursor_add(ptv, hf_woww_area, 4, ENC_LITTLE_ENDIAN);
            break;

        default:
            break;
        }
/* AUTOGENERATED_END_PARSER */

    ptvcursor_free(ptv);
}

static gint
add_header_to_tree(WowwDecryptedHeader_t* decrypted_header,
                   proto_tree* tree,
                   tvbuff_t* tvb,
                   packet_info* pinfo,
                   guint8 headerSize,
                   gint start_offset)
{
    const guint16 size_field_width = 2;
    // Size field does not count in the reported size, so we need to add it.
    const guint16 packet_size = (decrypted_header->size[0] << 8 | decrypted_header->size[1]) + size_field_width;

    proto_tree* ti = proto_tree_add_item(tree, proto_woww, tvb, start_offset, packet_size, ENC_NA);

    proto_tree* woww_tree = proto_item_add_subtree(ti, ett_message);

    // Add to tree
    tvbuff_t *next_tvb = tvb_new_child_real_data(tvb, (guint8*)decrypted_header, headerSize, headerSize);
    add_new_data_source(pinfo, next_tvb, "Decrypted Header");

    // We're indexing into another tvb
    gint offset = 0;
    gint len = size_field_width;
    proto_tree_add_item(woww_tree, hf_woww_size, next_tvb,
                        offset, len, ENC_BIG_ENDIAN);
    offset += len;

    guint32 opcode = 0;
    if (WOWW_SERVER_TO_CLIENT) {
        len = 2;
        opcode = tvb_get_guint16(next_tvb, offset, ENC_LITTLE_ENDIAN);
    } else if (WOWW_CLIENT_TO_SERVER) {
        len = 4;
        opcode = tvb_get_guint32(next_tvb, offset, ENC_LITTLE_ENDIAN);
    }

    proto_tree_add_item(woww_tree, hf_woww_opcode, next_tvb,
                        offset, len, ENC_LITTLE_ENDIAN);

    if (start_offset == 0) {
        // First message
        col_set_str(pinfo->cinfo, COL_INFO, val_to_str_const(opcode,
                                                             world_packet_strings,
                                                             "Encrypted Header"));
    }
    else {
        col_append_str(pinfo->cinfo, COL_INFO, " | ");
        col_append_str(pinfo->cinfo, COL_INFO, val_to_str_const(opcode,
                                                                world_packet_strings,
                                                                "Encrypted Header"));
    }

    proto_item_set_text(woww_tree, "%s", val_to_str_const(opcode,
                                                    world_packet_strings,
                                                    "Encrypted Header"));

    gint offset_packet_end = start_offset + (gint)packet_size;

    // Remember to go back to original tvb
    add_body_fields(opcode, woww_tree, tvb, start_offset + headerSize, offset_packet_end, pinfo);

    return offset_packet_end;
}

static int
dissect_woww(tvbuff_t *tvb,
             packet_info *pinfo,
             proto_tree *tree,
             void *data _U_)
{
    if (tvb_reported_length(tvb) < WOWW_MIN_LENGTH)
        return 0;

    if (tvb_captured_length(tvb) < 1)
        return 0;

    col_set_str(pinfo->cinfo, COL_PROTOCOL, "WOWW");

    col_set_str(pinfo->cinfo, COL_INFO, "Session Key Not Known Yet");

    // Get conversation data
    conversation_t* conv = find_or_create_conversation(pinfo);
    WowwConversation_t* wowwConversation = (WowwConversation_t *)conversation_get_proto_data(conv,
                                                                                             proto_woww);
    if (wowwConversation == NULL) {
        // Assume that file scope means for the lifetime of the dissection
        wowwConversation = (WowwConversation_t*) wmem_new0(wmem_file_scope(), WowwConversation_t);
        conversation_add_proto_data(conv, proto_woww, wowwConversation);
        wowwConversation->decrypted_headers = wmem_map_new(wmem_file_scope(), g_int64_hash, g_int64_equal);
        wowwConversation->headers_need_decryption = wmem_map_new(wmem_file_scope(), g_int64_hash, g_int64_equal);
    }

    // Isolate session key for packet
    WowwParticipant_t* participant;
    guint8 headerSize = 4;

    if (WOWW_SERVER_TO_CLIENT) {
        participant = &wowwConversation->server;
        headerSize = 4;
    } else {
        participant = &wowwConversation->client;
        headerSize = 6;
    }

    proto_tree* ti = proto_tree_add_item(tree, proto_woww, tvb, 0, -1, ENC_NA);

    proto_tree* woww_tree = proto_item_add_subtree(ti, ett_woww);

    gint pdu_offset = 0;
    gint reported_length = (gint)tvb_reported_length(tvb);
    guint8 header_index = 0;
    do {
        WowwDecryptedHeader_t* decrypted_header = handle_packet_header(pinfo, tvb, participant, wowwConversation, headerSize, header_index, pdu_offset);
        if (!decrypted_header) {
            return tvb_captured_length(tvb);
        }

        pdu_offset = add_header_to_tree(decrypted_header, woww_tree, tvb, pinfo, headerSize, pdu_offset);

        header_index++;
    } while (pdu_offset < reported_length);

    return tvb_captured_length(tvb);
}

void
proto_register_woww(void)
{
    static hf_register_info hf[] = {
        { &hf_woww_size,
          { "Size", "woww.size",
            FT_UINT16, BASE_HEX_DEC, NULL, 0,
            "Size of the packet including opcode field but not including size field", HFILL }
        },
        { &hf_woww_opcode,
          { "Opcode", "woww.opcode",
            FT_UINT32, BASE_HEX, VALS(world_packet_strings), 0,
            "Opcode of the packet", HFILL }
        },
        { &hf_woww_string_length,
          { "String Length", "woww.string_length",
            FT_UINT32, BASE_DEC_HEX, NULL, 0,
            NULL, HFILL }
        },
        { &hf_woww_aura_mask,
          { "Aura Mask", "woww.aura_mask",
            FT_UINT32, BASE_DEC_HEX, NULL, 0,
            NULL, HFILL }
        },
        { &hf_woww_aura,
          { "Aura", "woww.aura",
            FT_UINT32, BASE_DEC_HEX, NULL, 0,
            NULL, HFILL }
        },
        { &hf_woww_amount_of_masks,
          { "Amount of Masks", "woww.amount_of_masks",
            FT_UINT8, BASE_DEC_HEX, NULL, 0,
            NULL, HFILL }
        },
        { &hf_woww_update_mask,
          { "Update Mask", "woww.update_mask",
            FT_UINT32, BASE_DEC_HEX, NULL, 0,
            NULL, HFILL }
        },
        { &hf_woww_update_mask_value,
          { "Update Mask Value", "woww.update_mask_value",
            FT_UINT32, BASE_DEC_HEX, NULL, 0,
            NULL, HFILL }
        },
/* AUTOGENERATED_START_REGISTER */
        { &hf_woww_absorb,
            { "Absorb", "woww.absorb",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_absorbed,
            { "Absorbed", "woww.absorbed",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_absorbed_damage,
            { "Absorbed Damage", "woww.absorbed.damage",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_action,
            { "Action", "woww.action",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_action_bar,
            { "Action Bar", "woww.action.bar",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_action_bars,
            { "Action Bars", "woww.action.bars",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_action_type,
            { "Action Type", "woww.action.type",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_activate_taxi_reply,
            { "Activate Taxi Reply", "woww.activate.taxi.reply",
                FT_UINT32, BASE_HEX_DEC, VALS(e_activate_taxi_reply_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_actual_roll,
            { "Actual Roll", "woww.actual.roll",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_addon_crc,
            { "Addon Crc", "woww.addon.crc",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_addon_extra_crc,
            { "Addon Extra Crc", "woww.addon.extra.crc",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_addon_has_signature,
            { "Addon Has Signature", "woww.addon.has.signature",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_addon_name,
            { "Addon Name", "woww.addon.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_addon_type,
            { "Addon Type", "woww.addon.type",
                FT_UINT8, BASE_HEX_DEC, VALS(e_addon_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_agility,
            { "Agility", "woww.agility",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_ai_reaction,
            { "Ai Reaction", "woww.ai.reaction",
                FT_UINT32, BASE_HEX_DEC, VALS(e_ai_reaction_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_allow_movement,
            { "Allow Movement", "woww.allow.movement",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_allowed_class,
            { "Allowed Class", "woww.allowed.class",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_allowed_classes,
            { "Allowed Classes", "woww.allowed.classes",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_allowed_genders,
            { "Allowed Genders", "woww.allowed.genders",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_allowed_guild_id,
            { "Allowed Guild Id", "woww.allowed.guild.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_allowed_maximum_level,
            { "Allowed Maximum Level", "woww.allowed.maximum.level",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_allowed_minimum_level,
            { "Allowed Minimum Level", "woww.allowed.minimum.level",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_allowed_race,
            { "Allowed Race", "woww.allowed.race",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_allowed_races,
            { "Allowed Races", "woww.allowed.races",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_ammo_display_id,
            { "Ammo Display Id", "woww.ammo.display.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_ammo_inventory_type,
            { "Ammo Inventory Type", "woww.ammo.inventory.type",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_ammo_type,
            { "Ammo Type", "woww.ammo.type",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount,
            { "Amount", "woww.amount",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_bought,
            { "Amount Bought", "woww.amount.bought",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_for_sale,
            { "Amount For Sale", "woww.amount.for.sale",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_accounts_in_guild,
            { "Amount Of Accounts In Guild", "woww.amount.of.accounts.in.guild",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_auras,
            { "Amount Of Auras", "woww.amount.of.auras",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_carriers,
            { "Amount Of Carriers", "woww.amount.of.carriers",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_characters,
            { "Amount Of Characters", "woww.amount.of.characters",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_characters_in_guild,
            { "Amount Of Characters In Guild", "woww.amount.of.characters.in.guild",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_choice_item_rewards,
            { "Amount Of Choice Item Rewards", "woww.amount.of.choice.item.rewards",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_cooldowns,
            { "Amount Of Cooldowns", "woww.amount.of.cooldowns",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_damages,
            { "Amount Of Damages", "woww.amount.of.damages",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_effects,
            { "Amount Of Effects", "woww.amount.of.effects",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_emotes,
            { "Amount Of Emotes", "woww.amount.of.emotes",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_entries,
            { "Amount Of Entries", "woww.amount.of.entries",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_events,
            { "Amount Of Events", "woww.amount.of.events",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_extra_fields,
            { "Amount Of Extra Fields", "woww.amount.of.extra.fields",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_factions,
            { "Amount Of Factions", "woww.amount.of.factions",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_friends,
            { "Amount Of Friends", "woww.amount.of.friends",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_gossip_items,
            { "Amount Of Gossip Items", "woww.amount.of.gossip.items",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_hits,
            { "Amount Of Hits", "woww.amount.of.hits",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_ignored,
            { "Amount Of Ignored", "woww.amount.of.ignored",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_item_rewards,
            { "Amount Of Item Rewards", "woww.amount.of.item.rewards",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_items,
            { "Amount Of Items", "woww.amount.of.items",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_logs,
            { "Amount Of Logs", "woww.amount.of.logs",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_mails,
            { "Amount Of Mails", "woww.amount.of.mails",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_members,
            { "Amount Of Members", "woww.amount.of.members",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_misses,
            { "Amount Of Misses", "woww.amount.of.misses",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_nodes,
            { "Amount Of Nodes", "woww.amount.of.nodes",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_objects,
            { "Amount Of Objects", "woww.amount.of.objects",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_outbid_items,
            { "Amount Of Outbid Items", "woww.amount.of.outbid.items",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_petitions,
            { "Amount Of Petitions", "woww.amount.of.petitions",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_pets,
            { "Amount Of Pets", "woww.amount.of.pets",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_players,
            { "Amount Of Players", "woww.amount.of.players",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_quests,
            { "Amount Of Quests", "woww.amount.of.quests",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_raid_infos,
            { "Amount Of Raid Infos", "woww.amount.of.raid.infos",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_reactions,
            { "Amount Of Reactions", "woww.amount.of.reactions",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_records,
            { "Amount Of Records", "woww.amount.of.records",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_required_items,
            { "Amount Of Required Items", "woww.amount.of.required.items",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_rights,
            { "Amount Of Rights", "woww.amount.of.rights",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_signatures,
            { "Amount Of Signatures", "woww.amount.of.signatures",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_spells,
            { "Amount Of Spells", "woww.amount.of.spells",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_states,
            { "Amount Of States", "woww.amount.of.states",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_strings,
            { "Amount Of Strings", "woww.amount.of.strings",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_targets,
            { "Amount Of Targets", "woww.amount.of.targets",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_teammates,
            { "Amount Of Teammates", "woww.amount.of.teammates",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_amount_of_zones,
            { "Amount Of Zones", "woww.amount.of.zones",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_angle,
            { "Angle", "woww.angle",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_animation_id,
            { "Animation Id", "woww.animation.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_answer,
            { "Answer", "woww.answer",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_answer_comment,
            { "Answer Comment", "woww.answer.comment",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_apply,
            { "Apply", "woww.apply",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_arcane_resistance,
            { "Arcane Resistance", "woww.arcane.resistance",
                FT_INT32, BASE_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_area,
            { "Area", "woww.area",
                FT_UINT32, BASE_HEX_DEC, VALS(e_area_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_armor,
            { "Armor", "woww.armor",
                FT_INT32, BASE_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_attacker,
            { "Attacker", "woww.attacker",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_attacker_guid,
            { "Attacker Guid", "woww.attacker.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_auction_duration_in_minutes,
            { "Auction Duration In Minutes", "woww.auction.duration.in.minutes",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_auction_house_id,
            { "Auction House Id", "woww.auction.house.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_auction_id,
            { "Auction Id", "woww.auction.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_auction_main_category,
            { "Auction Main Category", "woww.auction.main.category",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_auction_out_bid,
            { "Auction Out Bid", "woww.auction.out.bid",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_auction_slot_id,
            { "Auction Slot Id", "woww.auction.slot.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_auction_sub_category,
            { "Auction Sub Category", "woww.auction.sub.category",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_auctioneer,
            { "Auctioneer", "woww.auctioneer",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_auctioneer_guid,
            { "Auctioneer Guid", "woww.auctioneer.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_aura_duration,
            { "Aura Duration", "woww.aura.duration",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_aura_slot,
            { "Aura Slot", "woww.aura.slot",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_aura_type,
            { "Aura Type", "woww.aura.type",
                FT_UINT32, BASE_HEX_DEC, VALS(e_aura_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_auto_decline_time_in_msecs,
            { "Auto Decline Time In Msecs", "woww.auto.decline.time.in.msecs",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_auto_finish,
            { "Auto Finish", "woww.auto.finish",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_average_wait_time_in_ms,
            { "Average Wait Time In Ms", "woww.average.wait.time.in.ms",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_background_color,
            { "Background Color", "woww.background.color",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_backwards_running_speed,
            { "Backwards Running Speed", "woww.backwards.running.speed",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_backwards_swimming_speed,
            { "Backwards Swimming Speed", "woww.backwards.swimming.speed",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_bag,
            { "Bag", "woww.bag",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_bag_family,
            { "Bag Family", "woww.bag.family",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_bag_guid,
            { "Bag Guid", "woww.bag.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_bag_index,
            { "Bag Index", "woww.bag.index",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_bag_slot,
            { "Bag Slot", "woww.bag.slot",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_bag_type_subclass,
            { "Bag Type Subclass", "woww.bag.type.subclass",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_battlefield_port_action,
            { "Battlefield Port Action", "woww.battlefield.port.action",
                FT_UINT8, BASE_HEX_DEC, VALS(e_battlefield_port_action_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_battleground_bracket,
            { "Battleground Bracket", "woww.battleground.bracket",
                FT_UINT8, BASE_HEX_DEC, VALS(e_battleground_bracket_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_battleground_end_status,
            { "Battleground End Status", "woww.battleground.end.status",
                FT_UINT8, BASE_HEX_DEC, VALS(e_battleground_end_status_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_battleground_winner,
            { "Battleground Winner", "woww.battleground.winner",
                FT_UINT8, BASE_HEX_DEC, VALS(e_battleground_winner_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_battlegrounds,
            { "Battlegrounds", "woww.battlegrounds",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_battlemaster,
            { "Battlemaster", "woww.battlemaster",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_bg_type_id,
            { "Bg Type Id", "woww.bg.type.id",
                FT_UINT32, BASE_HEX_DEC, VALS(e_bg_type_id_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_bid,
            { "Bid", "woww.bid",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_bidder,
            { "Bidder", "woww.bidder",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_billing_flags,
            { "Billing Flags", "woww.billing.flags",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_billing_rested,
            { "Billing Rested", "woww.billing.rested",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_billing_time,
            { "Billing Time", "woww.billing.time",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_block,
            { "Block", "woww.block",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_blocked,
            { "Blocked", "woww.blocked",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_blocked_amount,
            { "Blocked Amount", "woww.blocked.amount",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_body,
            { "Body", "woww.body",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_body_text,
            { "Body Text", "woww.body.text",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_bonding,
            { "Bonding", "woww.bonding",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_bonus_honor,
            { "Bonus Honor", "woww.bonus.honor",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_border_color,
            { "Border Color", "woww.border.color",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_border_style,
            { "Border Style", "woww.border.style",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_bug_type,
            { "Bug Type", "woww.bug.type",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_build,
            { "Build", "woww.build",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_button,
            { "Button", "woww.button",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_buy_bank_slot_result,
            { "Buy Bank Slot Result", "woww.buy.bank.slot.result",
                FT_UINT32, BASE_HEX_DEC, VALS(e_buy_bank_slot_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_buy_price,
            { "Buy Price", "woww.buy.price",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_buy_result,
            { "Buy Result", "woww.buy.result",
                FT_UINT8, BASE_HEX_DEC, VALS(e_buy_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_buyback_slot,
            { "Buyback Slot", "woww.buyback.slot",
                FT_UINT32, BASE_HEX_DEC, VALS(e_buyback_slot_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_buyout,
            { "Buyout", "woww.buyout",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_buyout_amount,
            { "Buyout Amount", "woww.buyout.amount",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_cash_on_delivery_amount,
            { "Cash On Delivery Amount", "woww.cash.on.delivery.amount",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_cast_failure_reason,
            { "Cast Failure Reason", "woww.cast.failure.reason",
                FT_UINT8, BASE_HEX_DEC, VALS(e_cast_failure_reason_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_cast_flags,
            { "Cast Flags", "woww.cast.flags",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_cast_item,
            { "Cast Item", "woww.cast.item",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_caster,
            { "Caster", "woww.caster",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_caster_guid,
            { "Caster Guid", "woww.caster.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_caster_is_spirit_healer,
            { "Caster Is Spirit Healer", "woww.caster.is.spirit.healer",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_category_cooldown_in_msecs,
            { "Category Cooldown In Msecs", "woww.category.cooldown.in.msecs",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_channel,
            { "Channel", "woww.channel",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_channel_flags,
            { "Channel Flags", "woww.channel.flags",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_channel_member_flags,
            { "Channel Member Flags", "woww.channel.member.flags",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_channel_name,
            { "Channel Name", "woww.channel.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_channel_password,
            { "Channel Password", "woww.channel.password",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_character_flags,
            { "Character Flags", "woww.character.flags",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_character_guid,
            { "Character Guid", "woww.character.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_character_name,
            { "Character Name", "woww.character.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_charter_display_id,
            { "Charter Display Id", "woww.charter.display.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_charter_entry,
            { "Charter Entry", "woww.charter.entry",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_charter_owner,
            { "Charter Owner", "woww.charter.owner",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_chat_credit,
            { "Chat Credit", "woww.chat.credit",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_chat_data_line_count,
            { "Chat Data Line Count", "woww.chat.data.line.count",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_chat_data_size_uncompressed,
            { "Chat Data Size Uncompressed", "woww.chat.data.size.uncompressed",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_chat_notify,
            { "Chat Notify", "woww.chat.notify",
                FT_UINT8, BASE_HEX_DEC, VALS(e_chat_notify_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_chat_type,
            { "Chat Type", "woww.chat.type",
                FT_UINT32, BASE_HEX_DEC, VALS(e_chat_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_checked_timestamp,
            { "Checked Timestamp", "woww.checked.timestamp",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_cinematic_sequence_id,
            { "Cinematic Sequence Id", "woww.cinematic.sequence.id",
                FT_UINT32, BASE_HEX_DEC, VALS(e_cinematic_sequence_id_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_civilian,
            { "Civilian", "woww.civilian",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_class,
            { "Class", "woww.class",
                FT_UINT32, BASE_HEX_DEC, VALS(e_class_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_class_mask,
            { "Class Mask", "woww.class.mask",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_client_instance_id,
            { "Client Instance Id", "woww.client.instance.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_client_proof,
            { "Client Proof", "woww.client.proof",
                FT_BYTES, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_client_seed,
            { "Client Seed", "woww.client.seed",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_code,
            { "Code", "woww.code",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_coded,
            { "Coded", "woww.coded",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_comment,
            { "Comment", "woww.comment",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_compressed_chat_data,
            { "Compressed Chat Data", "woww.compressed.chat.data",
                FT_BYTES, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_container_slots,
            { "Container Slots", "woww.container.slots",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_content,
            { "Content", "woww.content",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_cooldown_count,
            { "Cooldown Count", "woww.cooldown.count",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_cooldown_in_msecs,
            { "Cooldown In Msecs", "woww.cooldown.in.msecs",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_cooldown_time_in_msecs,
            { "Cooldown Time In Msecs", "woww.cooldown.time.in.msecs",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_corpse_query_result,
            { "Corpse Query Result", "woww.corpse.query.result",
                FT_UINT8, BASE_HEX_DEC, VALS(e_corpse_query_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_corpse_target_ally,
            { "Corpse Target Ally", "woww.corpse.target.ally",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_corpse_target_enemy,
            { "Corpse Target Enemy", "woww.corpse.target.enemy",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_cos_angle,
            { "Cos Angle", "woww.cos.angle",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_cost_in_copper,
            { "Cost In Copper", "woww.cost.in.copper",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_count,
            { "Count", "woww.count",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_countdown_time,
            { "Countdown Time", "woww.countdown.time",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_counter,
            { "Counter", "woww.counter",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_create_id,
            { "Create Id", "woww.create.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_created_day,
            { "Created Day", "woww.created.day",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_created_month,
            { "Created Month", "woww.created.month",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_created_year,
            { "Created Year", "woww.created.year",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_creature,
            { "Creature", "woww.creature",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_creature_entry,
            { "Creature Entry", "woww.creature.entry",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_creature_family,
            { "Creature Family", "woww.creature.family",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_creature_guid,
            { "Creature Guid", "woww.creature.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_creature_id,
            { "Creature Id", "woww.creature.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_creature_rank,
            { "Creature Rank", "woww.creature.rank",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_creature_type,
            { "Creature Type", "woww.creature.type",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_critical,
            { "Critical", "woww.critical",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_current_health,
            { "Current Health", "woww.current.health",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_current_power,
            { "Current Power", "woww.current.power",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_damage,
            { "Damage", "woww.damage",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_damage_float,
            { "Damage Float", "woww.damage.float",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_damage_maximum,
            { "Damage Maximum", "woww.damage.maximum",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_damage_minimum,
            { "Damage Minimum", "woww.damage.minimum",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_damage_state,
            { "Damage State", "woww.damage.state",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_damage_type,
            { "Damage Type", "woww.damage.type",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_damage_uint,
            { "Damage Uint", "woww.damage.uint",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_data,
            { "Data", "woww.data",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_data_type,
            { "Data Type", "woww.data.type",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_datetime,
            { "Datetime", "woww.datetime",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_days_since_last_updated,
            { "Days Since Last Updated", "woww.days.since.last.updated",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_days_since_oldest_ticket_creation,
            { "Days Since Oldest Ticket Creation", "woww.days.since.oldest.ticket.creation",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_days_since_ticket_creation,
            { "Days Since Ticket Creation", "woww.days.since.ticket.creation",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_deadline,
            { "Deadline", "woww.deadline",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_deaths,
            { "Deaths", "woww.deaths",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_decompressed_addon_info_size,
            { "Decompressed Addon Info Size", "woww.decompressed.addon.info.size",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_delay,
            { "Delay", "woww.delay",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_delay_in_seconds,
            { "Delay In Seconds", "woww.delay.in.seconds",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_delay_time,
            { "Delay Time", "woww.delay.time",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_description,
            { "Description", "woww.description",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_destination_bag,
            { "Destination Bag", "woww.destination.bag",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_destination_node,
            { "Destination Node", "woww.destination.node",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_destination_position_x,
            { "Destination Position X", "woww.destination.position.x",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_destination_position_y,
            { "Destination Position Y", "woww.destination.position.y",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_destination_position_z,
            { "Destination Position Z", "woww.destination.position.z",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_destination_slot,
            { "Destination Slot", "woww.destination.slot",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_destionation_slot,
            { "Destionation Slot", "woww.destionation.slot",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_details,
            { "Details", "woww.details",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_display_id,
            { "Display Id", "woww.display.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_duel_winner_reason,
            { "Duel Winner Reason", "woww.duel.winner.reason",
                FT_UINT8, BASE_HEX_DEC, VALS(e_duel_winner_reason_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_durability,
            { "Durability", "woww.durability",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_duration,
            { "Duration", "woww.duration",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_eff,
            { "Eff", "woww.eff",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_emblem_color,
            { "Emblem Color", "woww.emblem.color",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_emblem_style,
            { "Emblem Style", "woww.emblem.style",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_emote_delay,
            { "Emote Delay", "woww.emote.delay",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_emote_delay_in_msecs,
            { "Emote Delay In Msecs", "woww.emote.delay.in.msecs",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_emote_enum,
            { "Emote Enum", "woww.emote.enum",
                FT_UINT32, BASE_HEX_DEC, VALS(e_emote_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_emote_int,
            { "Emote Int", "woww.emote.int",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_enable_next,
            { "Enable Next", "woww.enable.next",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_enable_pvp,
            { "Enable Pvp", "woww.enable.pvp",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_enabled,
            { "Enabled", "woww.enabled",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_enchantment,
            { "Enchantment", "woww.enchantment",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_end_text,
            { "End Text", "woww.end.text",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_ended_without_interruption,
            { "Ended Without Interruption", "woww.ended.without.interruption",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_enemy,
            { "Enemy", "woww.enemy",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_energy,
            { "Energy", "woww.energy",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_entry,
            { "Entry", "woww.entry",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_entry_id,
            { "Entry Id", "woww.entry.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_environmental_damage_type,
            { "Environmental Damage Type", "woww.environmental.damage.type",
                FT_UINT32, BASE_HEX_DEC, VALS(e_environmental_damage_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_equipment_display_id,
            { "Equipment Display Id", "woww.equipment.display.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_equipped_item_class,
            { "Equipped Item Class", "woww.equipped.item.class",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_equipped_item_inventory_type_mask,
            { "Equipped Item Inventory Type Mask", "woww.equipped.item.inventory.type.mask",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_equipped_item_subclass_mask,
            { "Equipped Item Subclass Mask", "woww.equipped.item.subclass.mask",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_event_descriptions,
            { "Event Descriptions", "woww.event.descriptions",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_exp_group_bonus,
            { "Exp Group Bonus", "woww.exp.group.bonus",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_experience,
            { "Experience", "woww.experience",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_experience_award_type,
            { "Experience Award Type", "woww.experience.award.type",
                FT_UINT8, BASE_HEX_DEC, VALS(e_experience_award_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_experience_reward,
            { "Experience Reward", "woww.experience.reward",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_experience_without_rested,
            { "Experience Without Rested", "woww.experience.without.rested",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_expiration_time,
            { "Expiration Time", "woww.expiration.time",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_extend_flag,
            { "Extend Flag", "woww.extend.flag",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_face,
            { "Face", "woww.face",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_facial_hair,
            { "Facial Hair", "woww.facial.hair",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_faction_flag,
            { "Faction Flag", "woww.faction.flag",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_faction_id,
            { "Faction Id", "woww.faction.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_fall_time,
            { "Fall Time", "woww.fall.time",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_far_sight_operation,
            { "Far Sight Operation", "woww.far.sight.operation",
                FT_UINT8, BASE_HEX_DEC, VALS(e_far_sight_operation_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_fields,
            { "Fields", "woww.fields",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_fire_resistance,
            { "Fire Resistance", "woww.fire.resistance",
                FT_INT32, BASE_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_first_bag_display_id,
            { "First Bag Display Id", "woww.first.bag.display.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_first_bag_inventory_id,
            { "First Bag Inventory Id", "woww.first.bag.inventory.id",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_first_login,
            { "First Login", "woww.first.login",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_first_rank,
            { "First Rank", "woww.first.rank",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_flags,
            { "Flags", "woww.flags",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_focus,
            { "Focus", "woww.focus",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_friend_name,
            { "Friend Name", "woww.friend.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_friend_result,
            { "Friend Result", "woww.friend.result",
                FT_UINT8, BASE_HEX_DEC, VALS(e_friend_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_friend_status,
            { "Friend Status", "woww.friend.status",
                FT_UINT8, BASE_HEX_DEC, VALS(e_friend_status_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_frost_resistance,
            { "Frost Resistance", "woww.frost.resistance",
                FT_INT32, BASE_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_gain_multiplier,
            { "Gain Multiplier", "woww.gain.multiplier",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_gender,
            { "Gender", "woww.gender",
                FT_UINT32, BASE_HEX_DEC, VALS(e_gender_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_gift_bag_index,
            { "Gift Bag Index", "woww.gift.bag.index",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_gift_slot,
            { "Gift Slot", "woww.gift.slot",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_gift_wrapper,
            { "Gift Wrapper", "woww.gift.wrapper",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_gm_ticket_escalation_status,
            { "Gm Ticket Escalation Status", "woww.gm.ticket.escalation.status",
                FT_UINT8, BASE_HEX_DEC, VALS(e_gm_ticket_escalation_status_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_gm_ticket_queue_status,
            { "Gm Ticket Queue Status", "woww.gm.ticket.queue.status",
                FT_UINT32, BASE_HEX_DEC, VALS(e_gm_ticket_queue_status_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_gm_ticket_response,
            { "Gm Ticket Response", "woww.gm.ticket.response",
                FT_UINT32, BASE_HEX_DEC, VALS(e_gm_ticket_response_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_gm_ticket_status,
            { "Gm Ticket Status", "woww.gm.ticket.status",
                FT_UINT32, BASE_HEX_DEC, VALS(e_gm_ticket_status_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_gm_ticket_status_response,
            { "Gm Ticket Status Response", "woww.gm.ticket.status.response",
                FT_UINT32, BASE_HEX_DEC, VALS(e_gm_ticket_status_response_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_gm_ticket_type,
            { "Gm Ticket Type", "woww.gm.ticket.type",
                FT_UINT8, BASE_HEX_DEC, VALS(e_gm_ticket_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_gold,
            { "Gold", "woww.gold",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_gossip_list_id,
            { "Gossip List Id", "woww.gossip.list.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_grade,
            { "Grade", "woww.grade",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_greeting,
            { "Greeting", "woww.greeting",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_group_loot_setting,
            { "Group Loot Setting", "woww.group.loot.setting",
                FT_UINT32, BASE_HEX_DEC, VALS(e_group_loot_setting_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_group_member_online_status,
            { "Group Member Online Status", "woww.group.member.online.status",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_group_number,
            { "Group Number", "woww.group.number",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_group_type,
            { "Group Type", "woww.group.type",
                FT_UINT8, BASE_HEX_DEC, VALS(e_group_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_group_update_flags,
            { "Group Update Flags", "woww.group.update.flags",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_guid,
            { "Guid", "woww.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_guids,
            { "Guids", "woww.guids",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_guild,
            { "Guild", "woww.guild",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_guild_charter_cost,
            { "Guild Charter Cost", "woww.guild.charter.cost",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_guild_command,
            { "Guild Command", "woww.guild.command",
                FT_UINT32, BASE_HEX_DEC, VALS(e_guild_command_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_guild_command_result,
            { "Guild Command Result", "woww.guild.command.result",
                FT_UINT32, BASE_HEX_DEC, VALS(e_guild_command_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_guild_emblem_result,
            { "Guild Emblem Result", "woww.guild.emblem.result",
                FT_UINT32, BASE_HEX_DEC, VALS(e_guild_emblem_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_guild_event,
            { "Guild Event", "woww.guild.event",
                FT_UINT8, BASE_HEX_DEC, VALS(e_guild_event_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_guild_guid,
            { "Guild Guid", "woww.guild.guid",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_guild_id,
            { "Guild Id", "woww.guild.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_guild_info,
            { "Guild Info", "woww.guild.info",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_guild_member_status,
            { "Guild Member Status", "woww.guild.member.status",
                FT_UINT8, BASE_HEX_DEC, VALS(e_guild_member_status_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_guild_name,
            { "Guild Name", "woww.guild.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_hair_color,
            { "Hair Color", "woww.hair.color",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_hair_style,
            { "Hair Style", "woww.hair.style",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_happiness,
            { "Happiness", "woww.happiness",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_has_been_saved,
            { "Has Been Saved", "woww.has.been.saved",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_has_transport,
            { "Has Transport", "woww.has.transport",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_health,
            { "Health", "woww.health",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_highest_bid,
            { "Highest Bid", "woww.highest.bid",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_highest_bidder,
            { "Highest Bidder", "woww.highest.bidder",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_hit_info,
            { "Hit Info", "woww.hit.info",
                FT_UINT32, BASE_HEX_DEC, VALS(e_hit_info_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_hits,
            { "Hits", "woww.hits",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_holy_resistance,
            { "Holy Resistance", "woww.holy.resistance",
                FT_INT32, BASE_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_homebind_timer,
            { "Homebind Timer", "woww.homebind.timer",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_honor_points,
            { "Honor Points", "woww.honor.points",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_honorable_kills,
            { "Honorable Kills", "woww.honorable.kills",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_horizontal_speed,
            { "Horizontal Speed", "woww.horizontal.speed",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_icon,
            { "Icon", "woww.icon",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_id,
            { "Id", "woww.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_ignore_name,
            { "Ignore Name", "woww.ignore.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_ignored,
            { "Ignored", "woww.ignored",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_inactive,
            { "Inactive", "woww.inactive",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_index,
            { "Index", "woww.index",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_info_block,
            { "Info Block", "woww.info.block",
                FT_UINT8, BASE_HEX_DEC, VALS(e_info_block_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_info_type,
            { "Info Type", "woww.info.type",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_initiator_guid,
            { "Initiator Guid", "woww.initiator.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_initiator_name,
            { "Initiator Name", "woww.initiator.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_instance_id,
            { "Instance Id", "woww.instance.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_instance_reset_failed_reason,
            { "Instance Reset Failed Reason", "woww.instance.reset.failed.reason",
                FT_UINT8, BASE_HEX_DEC, VALS(e_instance_reset_failed_reason_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_intellect,
            { "Intellect", "woww.intellect",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_interrupted_spell,
            { "Interrupted Spell", "woww.interrupted.spell",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_inventory_result,
            { "Inventory Result", "woww.inventory.result",
                FT_UINT32, BASE_HEX_DEC, VALS(e_inventory_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_inventory_type,
            { "Inventory Type", "woww.inventory.type",
                FT_UINT32, BASE_HEX_DEC, VALS(e_inventory_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_invited_player,
            { "Invited Player", "woww.invited.player",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_is_applied,
            { "Is Applied", "woww.is.applied",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_is_frozen,
            { "Is Frozen", "woww.is.frozen",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_is_online,
            { "Is Online", "woww.is.online",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_is_wrapped,
            { "Is Wrapped", "woww.is.wrapped",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_issue_date,
            { "Issue Date", "woww.issue.date",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item,
            { "Item", "woww.item",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_bag_index,
            { "Item Bag Index", "woww.item.bag.index",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_charges,
            { "Item Charges", "woww.item.charges",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_class,
            { "Item Class", "woww.item.class",
                FT_UINT32, BASE_HEX_DEC, VALS(e_item_class_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_count,
            { "Item Count", "woww.item.count",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_creator,
            { "Item Creator", "woww.item.creator",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_display_id,
            { "Item Display Id", "woww.item.display.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_display_info,
            { "Item Display Info", "woww.item.display.info",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_enchant_id,
            { "Item Enchant Id", "woww.item.enchant.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_enchantment,
            { "Item Enchantment", "woww.item.enchantment",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_entry,
            { "Item Entry", "woww.item.entry",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_guid,
            { "Item Guid", "woww.item.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_icon,
            { "Item Icon", "woww.item.icon",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_id,
            { "Item Id", "woww.item.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_level,
            { "Item Level", "woww.item.level",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_limit_category_id,
            { "Item Limit Category Id", "woww.item.limit.category.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_name,
            { "Item Name", "woww.item.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_owner,
            { "Item Owner", "woww.item.owner",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_quality,
            { "Item Quality", "woww.item.quality",
                FT_UINT32, BASE_HEX_DEC, VALS(e_item_quality_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_random_properties_id,
            { "Item Random Properties Id", "woww.item.random.properties.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_random_property_id,
            { "Item Random Property Id", "woww.item.random.property.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_random_suffix,
            { "Item Random Suffix", "woww.item.random.suffix",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_random_suffix_id,
            { "Item Random Suffix Id", "woww.item.random.suffix.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_set,
            { "Item Set", "woww.item.set",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_slot,
            { "Item Slot", "woww.item.slot",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_spell_charges,
            { "Item Spell Charges", "woww.item.spell.charges",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_stack_count,
            { "Item Stack Count", "woww.item.stack.count",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_stack_size,
            { "Item Stack Size", "woww.item.stack.size",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_stat_type,
            { "Item Stat Type", "woww.item.stat.type",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_stat_value,
            { "Item Stat Value", "woww.item.stat.value",
                FT_INT32, BASE_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_sub_class,
            { "Item Sub Class", "woww.item.sub.class",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_sub_class_mask,
            { "Item Sub Class Mask", "woww.item.sub.class.mask",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_suffix_factor,
            { "Item Suffix Factor", "woww.item.suffix.factor",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_target,
            { "Item Target", "woww.item.target",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_target_entry,
            { "Item Target Entry", "woww.item.target.entry",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_template,
            { "Item Template", "woww.item.template",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_text_id,
            { "Item Text Id", "woww.item.text.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_item_trade_target,
            { "Item Trade Target", "woww.item.trade.target",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_items_required,
            { "Items Required", "woww.items.required",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_join_as_group,
            { "Join As Group", "woww.join.as.group",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_key_version,
            { "Key Version", "woww.key.version",
                FT_UINT8, BASE_HEX_DEC, VALS(e_key_version_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_kill_count,
            { "Kill Count", "woww.kill.count",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_killing_blows,
            { "Killing Blows", "woww.killing.blows",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_lag,
            { "Lag", "woww.lag",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_language,
            { "Language", "woww.language",
                FT_UINT32, BASE_HEX_DEC, VALS(e_language_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_language_id,
            { "Language Id", "woww.language.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_last_week_honor,
            { "Last Week Honor", "woww.last.week.honor",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_last_week_honorable,
            { "Last Week Honorable", "woww.last.week.honorable",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_leader,
            { "Leader", "woww.leader",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_level,
            { "Level", "woww.level",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_level_played_time,
            { "Level Played Time", "woww.level.played.time",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_lifetime_dishonorable,
            { "Lifetime Dishonorable", "woww.lifetime.dishonorable",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_lifetime_honorable,
            { "Lifetime Honorable", "woww.lifetime.honorable",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_list_from,
            { "List From", "woww.list.from",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_list_start_item,
            { "List Start Item", "woww.list.start.item",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_listed_players,
            { "Listed Players", "woww.listed.players",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_living_orientation,
            { "Living Orientation", "woww.living.orientation",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_location_name,
            { "Location Name", "woww.location.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_lock_id,
            { "Lock Id", "woww.lock.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_log_format,
            { "Log Format", "woww.log.format",
                FT_UINT8, BASE_HEX_DEC, VALS(e_log_format_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_logout_result,
            { "Logout Result", "woww.logout.result",
                FT_UINT32, BASE_HEX_DEC, VALS(e_logout_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_logout_speed,
            { "Logout Speed", "woww.logout.speed",
                FT_UINT8, BASE_HEX_DEC, VALS(e_logout_speed_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_loot,
            { "Loot", "woww.loot",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_loot_master,
            { "Loot Master", "woww.loot.master",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_loot_method,
            { "Loot Method", "woww.loot.method",
                FT_UINT8, BASE_HEX_DEC, VALS(e_loot_method_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_loot_slot,
            { "Loot Slot", "woww.loot.slot",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_looted_target_guid,
            { "Looted Target Guid", "woww.looted.target.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_loyalty,
            { "Loyalty", "woww.loyalty",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_mail_id,
            { "Mail Id", "woww.mail.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_mail_template_id,
            { "Mail Template Id", "woww.mail.template.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_mail_type,
            { "Mail Type", "woww.mail.type",
                FT_UINT8, BASE_HEX_DEC, VALS(e_mail_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_mailbox,
            { "Mailbox", "woww.mailbox",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_mailbox_guid,
            { "Mailbox Guid", "woww.mailbox.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_mailbox_id,
            { "Mailbox Id", "woww.mailbox.id",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_mana,
            { "Mana", "woww.mana",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_map,
            { "Map", "woww.map",
                FT_UINT32, BASE_HEX_DEC, VALS(e_map_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_master_loot,
            { "Master Loot", "woww.master.loot",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_material,
            { "Material", "woww.material",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_max_count,
            { "Max Count", "woww.max.count",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_max_durability,
            { "Max Durability", "woww.max.durability",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_max_health,
            { "Max Health", "woww.max.health",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_max_items,
            { "Max Items", "woww.max.items",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_max_level_money_reward,
            { "Max Level Money Reward", "woww.max.level.money.reward",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_max_power,
            { "Max Power", "woww.max.power",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_maximum,
            { "Maximum", "woww.maximum",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_maximum_level,
            { "Maximum Level", "woww.maximum.level",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_maximum_signatures,
            { "Maximum Signatures", "woww.maximum.signatures",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_meeting_stone_failure,
            { "Meeting Stone Failure", "woww.meeting.stone.failure",
                FT_UINT8, BASE_HEX_DEC, VALS(e_meeting_stone_failure_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_meeting_stone_status,
            { "Meeting Stone Status", "woww.meeting.stone.status",
                FT_UINT8, BASE_HEX_DEC, VALS(e_meeting_stone_status_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_member,
            { "Member", "woww.member",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_message,
            { "Message", "woww.message",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_message_id,
            { "Message Id", "woww.message.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_message_of_the_day,
            { "Message Of The Day", "woww.message.of.the.day",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_minimum,
            { "Minimum", "woww.minimum",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_minimum_bid,
            { "Minimum Bid", "woww.minimum.bid",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_minimum_level,
            { "Minimum Level", "woww.minimum.level",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_minimum_signatures,
            { "Minimum Signatures", "woww.minimum.signatures",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_misc,
            { "Misc", "woww.misc",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_misc_value,
            { "Misc Value", "woww.misc.value",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_money,
            { "Money", "woww.money",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_money_in_trade,
            { "Money In Trade", "woww.money.in.trade",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_money_reward,
            { "Money Reward", "woww.money.reward",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_monster,
            { "Monster", "woww.monster",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_monster_move_type,
            { "Monster Move Type", "woww.monster.move.type",
                FT_UINT8, BASE_HEX_DEC, VALS(e_monster_move_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_monster_name,
            { "Monster Name", "woww.monster.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_motd,
            { "Motd", "woww.motd",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_mount_result,
            { "Mount Result", "woww.mount.result",
                FT_UINT32, BASE_HEX_DEC, VALS(e_mount_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_move_event,
            { "Move Event", "woww.move.event",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_movement_counter,
            { "Movement Counter", "woww.movement.counter",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_movement_flags,
            { "Movement Flags", "woww.movement.flags",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_name,
            { "Name", "woww.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_nature_resistance,
            { "Nature Resistance", "woww.nature.resistance",
                FT_INT32, BASE_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_nearest_node,
            { "Nearest Node", "woww.nearest.node",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_new_guild_leader_name,
            { "New Guild Leader Name", "woww.new.guild.leader.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_new_item_chat_alert,
            { "New Item Chat Alert", "woww.new.item.chat.alert",
                FT_UINT32, BASE_HEX_DEC, VALS(e_new_item_chat_alert_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_new_item_creation_type,
            { "New Item Creation Type", "woww.new.item.creation.type",
                FT_UINT32, BASE_HEX_DEC, VALS(e_new_item_creation_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_new_item_source,
            { "New Item Source", "woww.new.item.source",
                FT_UINT32, BASE_HEX_DEC, VALS(e_new_item_source_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_new_level,
            { "New Level", "woww.new.level",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_new_name,
            { "New Name", "woww.new.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_new_owner,
            { "New Owner", "woww.new.owner",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_new_speed,
            { "New Speed", "woww.new.speed",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_new_spell_id,
            { "New Spell Id", "woww.new.spell.id",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_next_page_id,
            { "Next Page Id", "woww.next.page.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_next_quest_in_chain,
            { "Next Quest In Chain", "woww.next.quest.in.chain",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_next_resurrect_time,
            { "Next Resurrect Time", "woww.next.resurrect.time",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_node_count,
            { "Node Count", "woww.node.count",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_nodes,
            { "Nodes", "woww.nodes",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_note,
            { "Note", "woww.note",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_notification,
            { "Notification", "woww.notification",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_npc,
            { "Npc", "woww.npc",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_npc_guid,
            { "Npc Guid", "woww.npc.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_number_of_battlegrounds,
            { "Number Of Battlegrounds", "woww.number.of.battlegrounds",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_number_of_choices,
            { "Number Of Choices", "woww.number.of.choices",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_object_target,
            { "Object Target", "woww.object.target",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_object_target_locked,
            { "Object Target Locked", "woww.object.target.locked",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_object_type,
            { "Object Type", "woww.object.type",
                FT_UINT8, BASE_HEX_DEC, VALS(e_object_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_objective_text,
            { "Objective Text", "woww.objective.text",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_objective_texts,
            { "Objective Texts", "woww.objective.texts",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_objectives,
            { "Objectives", "woww.objectives",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_offer_reward_text,
            { "Offer Reward Text", "woww.offer.reward.text",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_officer_note,
            { "Officer Note", "woww.officer.note",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_old_mover,
            { "Old Mover", "woww.old.mover",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_old_spell_id,
            { "Old Spell Id", "woww.old.spell.id",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_online_players,
            { "Online Players", "woww.online.players",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_op,
            { "Op", "woww.op",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_opponent_name,
            { "Opponent Name", "woww.opponent.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_orientation,
            { "Orientation", "woww.orientation",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_out_bid,
            { "Out Bid", "woww.out.bid",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_outbid_item_ids,
            { "Outbid Item Ids", "woww.outbid.item.ids",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_outfit_id,
            { "Outfit Id", "woww.outfit.id",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_own_flags,
            { "Own Flags", "woww.own.flags",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_owner_guid,
            { "Owner Guid", "woww.owner.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_padding,
            { "Padding", "woww.padding",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_page_id,
            { "Page Id", "woww.page.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_page_material,
            { "Page Material", "woww.page.material",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_page_text,
            { "Page Text", "woww.page.text",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_party_operation,
            { "Party Operation", "woww.party.operation",
                FT_UINT32, BASE_HEX_DEC, VALS(e_party_operation_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_party_result,
            { "Party Result", "woww.party.result",
                FT_UINT32, BASE_HEX_DEC, VALS(e_party_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_party_status,
            { "Party Status", "woww.party.status",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_periodic_log,
            { "Periodic Log", "woww.periodic.log",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet,
            { "Pet", "woww.pet",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_command_state,
            { "Pet Command State", "woww.pet.command.state",
                FT_UINT8, BASE_HEX_DEC, VALS(e_pet_command_state_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_current_health,
            { "Pet Current Health", "woww.pet.current.health",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_current_power,
            { "Pet Current Power", "woww.pet.current.power",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_display_id,
            { "Pet Display Id", "woww.pet.display.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_enabled,
            { "Pet Enabled", "woww.pet.enabled",
                FT_UINT8, BASE_HEX_DEC, VALS(e_pet_enabled_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_family,
            { "Pet Family", "woww.pet.family",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_feedback,
            { "Pet Feedback", "woww.pet.feedback",
                FT_UINT8, BASE_HEX_DEC, VALS(e_pet_feedback_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_guid,
            { "Pet Guid", "woww.pet.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_level,
            { "Pet Level", "woww.pet.level",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_max_health,
            { "Pet Max Health", "woww.pet.max.health",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_max_power,
            { "Pet Max Power", "woww.pet.max.power",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_name,
            { "Pet Name", "woww.pet.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_name_timestamp,
            { "Pet Name Timestamp", "woww.pet.name.timestamp",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_number,
            { "Pet Number", "woww.pet.number",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_react_state,
            { "Pet React State", "woww.pet.react.state",
                FT_UINT8, BASE_HEX_DEC, VALS(e_pet_react_state_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_slot,
            { "Pet Slot", "woww.pet.slot",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_talk_reason,
            { "Pet Talk Reason", "woww.pet.talk.reason",
                FT_UINT32, BASE_HEX_DEC, VALS(e_pet_talk_reason_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pet_tame_failure_reason,
            { "Pet Tame Failure Reason", "woww.pet.tame.failure.reason",
                FT_UINT8, BASE_HEX_DEC, VALS(e_pet_tame_failure_reason_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_petition,
            { "Petition", "woww.petition",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_petition_guid,
            { "Petition Guid", "woww.petition.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_petition_result,
            { "Petition Result", "woww.petition.result",
                FT_UINT32, BASE_HEX_DEC, VALS(e_petition_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pitch,
            { "Pitch", "woww.pitch",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_player,
            { "Player", "woww.player",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_player_chat_tag,
            { "Player Chat Tag", "woww.player.chat.tag",
                FT_UINT8, BASE_HEX_DEC, VALS(e_player_chat_tag_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_player_guid,
            { "Player Guid", "woww.player.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_player_name,
            { "Player Name", "woww.player.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_player_rank,
            { "Player Rank", "woww.player.rank",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_player_with_killing_blow,
            { "Player With Killing Blow", "woww.player.with.killing.blow",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_point_map_id,
            { "Point Map Id", "woww.point.map.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_point_opt,
            { "Point Opt", "woww.point.opt",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_position,
            { "Position", "woww.position",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_position_x,
            { "Position X", "woww.position.x",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_position_x_int,
            { "Position X Int", "woww.position.x.int",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_position_y,
            { "Position Y", "woww.position.y",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_position_y_int,
            { "Position Y Int", "woww.position.y.int",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_power,
            { "Power", "woww.power",
                FT_UINT8, BASE_HEX_DEC, VALS(e_power_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_power_type,
            { "Power Type", "woww.power.type",
                FT_UINT32, BASE_HEX_DEC, VALS(e_power_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_price,
            { "Price", "woww.price",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_probability,
            { "Probability", "woww.probability",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_public_key,
            { "Public Key", "woww.public.key",
                FT_BYTES, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_public_note,
            { "Public Note", "woww.public.note",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_pvp_rank,
            { "Pvp Rank", "woww.pvp.rank",
                FT_UINT32, BASE_HEX_DEC, VALS(e_pvp_rank_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_quest_completable,
            { "Quest Completable", "woww.quest.completable",
                FT_UINT32, BASE_HEX_DEC, VALS(e_quest_completable_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_quest_failed_reason,
            { "Quest Failed Reason", "woww.quest.failed.reason",
                FT_UINT32, BASE_HEX_DEC, VALS(e_quest_failed_reason_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_quest_flags,
            { "Quest Flags", "woww.quest.flags",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_quest_giver_status,
            { "Quest Giver Status", "woww.quest.giver.status",
                FT_UINT32, BASE_HEX_DEC, VALS(e_quest_giver_status_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_quest_icon,
            { "Quest Icon", "woww.quest.icon",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_quest_id,
            { "Quest Id", "woww.quest.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_quest_level,
            { "Quest Level", "woww.quest.level",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_quest_method,
            { "Quest Method", "woww.quest.method",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_quest_party_message,
            { "Quest Party Message", "woww.quest.party.message",
                FT_UINT8, BASE_HEX_DEC, VALS(e_quest_party_message_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_quest_title,
            { "Quest Title", "woww.quest.title",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_quest_type,
            { "Quest Type", "woww.quest.type",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_question_id,
            { "Question Id", "woww.question.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_queue_position,
            { "Queue Position", "woww.queue.position",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_queue_slot,
            { "Queue Slot", "woww.queue.slot",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_race,
            { "Race", "woww.race",
                FT_UINT32, BASE_HEX_DEC, VALS(e_race_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_race_mask,
            { "Race Mask", "woww.race.mask",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_racial_leader,
            { "Racial Leader", "woww.racial.leader",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_rage,
            { "Rage", "woww.rage",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_raid_group_error,
            { "Raid Group Error", "woww.raid.group.error",
                FT_UINT32, BASE_HEX_DEC, VALS(e_raid_group_error_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_raid_instance_message,
            { "Raid Instance Message", "woww.raid.instance.message",
                FT_UINT32, BASE_HEX_DEC, VALS(e_raid_instance_message_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_raid_target_index,
            { "Raid Target Index", "woww.raid.target.index",
                FT_UINT8, BASE_HEX_DEC, VALS(e_raid_target_index_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_raid_target_update_type,
            { "Raid Target Update Type", "woww.raid.target.update.type",
                FT_UINT8, BASE_HEX_DEC, VALS(e_raid_target_update_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_random_property,
            { "Random Property", "woww.random.property",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_random_property_id,
            { "Random Property Id", "woww.random.property.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_ranged_range_modification,
            { "Ranged Range Modification", "woww.ranged.range.modification",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_rank,
            { "Rank", "woww.rank",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_rank_id,
            { "Rank Id", "woww.rank.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_rank_name,
            { "Rank Name", "woww.rank.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_rank_names,
            { "Rank Names", "woww.rank.names",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_rank_progress_bar,
            { "Rank Progress Bar", "woww.rank.progress.bar",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_raw_data,
            { "Raw Data", "woww.raw.data",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_read_by_gm,
            { "Read By Gm", "woww.read.by.gm",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_realm_name,
            { "Realm Name", "woww.realm.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_receiver,
            { "Receiver", "woww.receiver",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_records,
            { "Records", "woww.records",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_reputation_id,
            { "Reputation Id", "woww.reputation.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_reputation_list_id,
            { "Reputation List Id", "woww.reputation.list.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_reputation_objective_faction,
            { "Reputation Objective Faction", "woww.reputation.objective.faction",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_reputation_objective_value,
            { "Reputation Objective Value", "woww.reputation.objective.value",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_reputation_rank,
            { "Reputation Rank", "woww.reputation.rank",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_request_items_text,
            { "Request Items Text", "woww.request.items.text",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_requested_rank,
            { "Requested Rank", "woww.requested.rank",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_city_rank,
            { "Required City Rank", "woww.required.city.rank",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_honor_rank,
            { "Required Honor Rank", "woww.required.honor.rank",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_item_count,
            { "Required Item Count", "woww.required.item.count",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_item_id,
            { "Required Item Id", "woww.required.item.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_kill_count,
            { "Required Kill Count", "woww.required.kill.count",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_level,
            { "Required Level", "woww.required.level",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_money,
            { "Required Money", "woww.required.money",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_opposite_faction,
            { "Required Opposite Faction", "woww.required.opposite.faction",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_opposite_reputation_value,
            { "Required Opposite Reputation Value", "woww.required.opposite.reputation.value",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_reputation_faction,
            { "Required Reputation Faction", "woww.required.reputation.faction",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_reputation_rank,
            { "Required Reputation Rank", "woww.required.reputation.rank",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_skill,
            { "Required Skill", "woww.required.skill",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_skill_rank,
            { "Required Skill Rank", "woww.required.skill.rank",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_skill_value,
            { "Required Skill Value", "woww.required.skill.value",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_spell,
            { "Required Spell", "woww.required.spell",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_required_spell_focus,
            { "Required Spell Focus", "woww.required.spell.focus",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_reserved_for_future_use,
            { "Reserved For Future Use", "woww.reserved.for.future.use",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_reset_time,
            { "Reset Time", "woww.reset.time",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_resist,
            { "Resist", "woww.resist",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_resisted,
            { "Resisted", "woww.resisted",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_respect_resurrection_timer,
            { "Respect Resurrection Timer", "woww.respect.resurrection.timer",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_reward,
            { "Reward", "woww.reward",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_reward_spell,
            { "Reward Spell", "woww.reward.spell",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_reward_spell_cast,
            { "Reward Spell Cast", "woww.reward.spell.cast",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_rights,
            { "Rights", "woww.rights",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_roll_number,
            { "Roll Number", "woww.roll.number",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_roll_vote,
            { "Roll Vote", "woww.roll.vote",
                FT_UINT8, BASE_HEX_DEC, VALS(e_roll_vote_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_round_time_in_ms,
            { "Round Time In Ms", "woww.round.time.in.ms",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_running_speed,
            { "Running Speed", "woww.running.speed",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_scale,
            { "Scale", "woww.scale",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_search_strings,
            { "Search Strings", "woww.search.strings",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_searched_name,
            { "Searched Name", "woww.searched.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_self_player,
            { "Self Player", "woww.self.player",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_sell_item_result,
            { "Sell Item Result", "woww.sell.item.result",
                FT_UINT8, BASE_HEX_DEC, VALS(e_sell_item_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_sell_price,
            { "Sell Price", "woww.sell.price",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_sender,
            { "Sender", "woww.sender",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_sender_id,
            { "Sender Id", "woww.sender.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_sender_name,
            { "Sender Name", "woww.sender.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_sequence_id,
            { "Sequence Id", "woww.sequence.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_server_id,
            { "Server Id", "woww.server.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_server_message_type,
            { "Server Message Type", "woww.server.message.type",
                FT_UINT32, BASE_HEX_DEC, VALS(e_server_message_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_server_seed,
            { "Server Seed", "woww.server.seed",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_set_assistant,
            { "Set Assistant", "woww.set.assistant",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_shadow_resistance,
            { "Shadow Resistance", "woww.shadow.resistance",
                FT_INT32, BASE_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_sheath,
            { "Sheath", "woww.sheath",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_sheath_state,
            { "Sheath State", "woww.sheath.state",
                FT_UINT32, BASE_HEX_DEC, VALS(e_sheath_state_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_signer,
            { "Signer", "woww.signer",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_simple_spell_cast_result,
            { "Simple Spell Cast Result", "woww.simple.spell.cast.result",
                FT_UINT8, BASE_HEX_DEC, VALS(e_simple_spell_cast_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_sin_angle,
            { "Sin Angle", "woww.sin.angle",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_skill_id,
            { "Skill Id", "woww.skill.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_skin,
            { "Skin", "woww.skin",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_skin_color,
            { "Skin Color", "woww.skin.color",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_slot,
            { "Slot", "woww.slot",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_slot_id,
            { "Slot Id", "woww.slot.id",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_slot_index,
            { "Slot Index", "woww.slot.index",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_sound_id,
            { "Sound Id", "woww.sound.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_source_bag,
            { "Source Bag", "woww.source.bag",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_source_item_id,
            { "Source Item Id", "woww.source.item.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_source_node,
            { "Source Node", "woww.source.node",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_source_position_x,
            { "Source Position X", "woww.source.position.x",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_source_position_y,
            { "Source Position Y", "woww.source.position.y",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_source_position_z,
            { "Source Position Z", "woww.source.position.z",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_source_slot,
            { "Source Slot", "woww.source.slot",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_speech_bubble_credit,
            { "Speech Bubble Credit", "woww.speech.bubble.credit",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_speed,
            { "Speed", "woww.speed",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell,
            { "Spell", "woww.spell",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_art_kit,
            { "Spell Art Kit", "woww.spell.art.kit",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_cast_result,
            { "Spell Cast Result", "woww.spell.cast.result",
                FT_UINT8, BASE_HEX_DEC, VALS(e_spell_cast_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_cast_target_flags,
            { "Spell Cast Target Flags", "woww.spell.cast.target.flags",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_category,
            { "Spell Category", "woww.spell.category",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_category_cooldown,
            { "Spell Category Cooldown", "woww.spell.category.cooldown",
                FT_INT32, BASE_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_chain_previous,
            { "Spell Chain Previous", "woww.spell.chain.previous",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_chain_required,
            { "Spell Chain Required", "woww.spell.chain.required",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_charges,
            { "Spell Charges", "woww.spell.charges",
                FT_INT32, BASE_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_cooldown,
            { "Spell Cooldown", "woww.spell.cooldown",
                FT_INT32, BASE_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_cost,
            { "Spell Cost", "woww.spell.cost",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_count,
            { "Spell Count", "woww.spell.count",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_data_id,
            { "Spell Data Id", "woww.spell.data.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_effect,
            { "Spell Effect", "woww.spell.effect",
                FT_UINT32, BASE_HEX_DEC, VALS(e_spell_effect_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_effect_item_type,
            { "Spell Effect Item Type", "woww.spell.effect.item.type",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_id,
            { "Spell Id", "woww.spell.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_index,
            { "Spell Index", "woww.spell.index",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_miss_info,
            { "Spell Miss Info", "woww.spell.miss.info",
                FT_UINT32, BASE_HEX_DEC, VALS(e_spell_miss_info_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_on_lowest_slot,
            { "Spell On Lowest Slot", "woww.spell.on.lowest.slot",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_ppm_rate,
            { "Spell Ppm Rate", "woww.spell.ppm.rate",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_school,
            { "Spell School", "woww.spell.school",
                FT_UINT32, BASE_HEX_DEC, VALS(e_spell_school_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_school_mask,
            { "Spell School Mask", "woww.spell.school.mask",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_trigger,
            { "Spell Trigger", "woww.spell.trigger",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spell_visual_kit,
            { "Spell Visual Kit", "woww.spell.visual.kit",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spells,
            { "Spells", "woww.spells",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spirit,
            { "Spirit", "woww.spirit",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spline_elevation,
            { "Spline Elevation", "woww.spline.elevation",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spline_flag,
            { "Spline Flag", "woww.spline.flag",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_spline_id,
            { "Spline Id", "woww.spline.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_stable_result,
            { "Stable Result", "woww.stable.result",
                FT_UINT8, BASE_HEX_DEC, VALS(e_stable_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_stable_slots,
            { "Stable Slots", "woww.stable.slots",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_stack_count,
            { "Stack Count", "woww.stack.count",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_stackable,
            { "Stackable", "woww.stackable",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_stamina,
            { "Stamina", "woww.stamina",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_standing,
            { "Standing", "woww.standing",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_start_bid,
            { "Start Bid", "woww.start.bid",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_start_from_page,
            { "Start From Page", "woww.start.from.page",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_start_quest,
            { "Start Quest", "woww.start.quest",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_starting_bid,
            { "Starting Bid", "woww.starting.bid",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_state,
            { "State", "woww.state",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_stationery,
            { "Stationery", "woww.stationery",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_status,
            { "Status", "woww.status",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_status_id,
            { "Status Id", "woww.status.id",
                FT_UINT8, BASE_HEX_DEC, VALS(e_status_id_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_strength,
            { "Strength", "woww.strength",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_string,
            { "String", "woww.string",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_sub_name,
            { "Sub Name", "woww.sub.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_subject,
            { "Subject", "woww.subject",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_suggestion,
            { "Suggestion", "woww.suggestion",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_summoner_guid,
            { "Summoner Guid", "woww.summoner.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_survey_id,
            { "Survey Id", "woww.survey.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_swap_with_name,
            { "Swap With Name", "woww.swap.with.name",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_swimming_speed,
            { "Swimming Speed", "woww.swimming.speed",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_talent_id,
            { "Talent Id", "woww.talent.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_talent_point_cost,
            { "Talent Point Cost", "woww.talent.point.cost",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_talent_reset_cost,
            { "Talent Reset Cost", "woww.talent.reset.cost",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_target,
            { "Target", "woww.target",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_target_error,
            { "Target Error", "woww.target.error",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_target_guid,
            { "Target Guid", "woww.target.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_target_player,
            { "Target Player", "woww.target.player",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_target_string,
            { "Target String", "woww.target.string",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_targets,
            { "Targets", "woww.targets",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_taxi_mask_node_known,
            { "Taxi Mask Node Known", "woww.taxi.mask.node.known",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_text,
            { "Text", "woww.text",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_text_emote,
            { "Text Emote", "woww.text.emote",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_text_id,
            { "Text Id", "woww.text.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_texts,
            { "Texts", "woww.texts",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_this_week_honor,
            { "This Week Honor", "woww.this.week.honor",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_this_week_honorable,
            { "This Week Honorable", "woww.this.week.honorable",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_time,
            { "Time", "woww.time",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_time_in_msec,
            { "Time In Msec", "woww.time.in.msec",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_time_in_msecs,
            { "Time In Msecs", "woww.time.in.msecs",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_time_in_queue_in_ms,
            { "Time In Queue In Ms", "woww.time.in.queue.in.ms",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_time_in_seconds,
            { "Time In Seconds", "woww.time.in.seconds",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_time_left,
            { "Time Left", "woww.time.left",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_time_left_in_msecs,
            { "Time Left In Msecs", "woww.time.left.in.msecs",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_time_offline,
            { "Time Offline", "woww.time.offline",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_time_passed,
            { "Time Passed", "woww.time.passed",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_time_remaining,
            { "Time Remaining", "woww.time.remaining",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_time_to_bg_autoleave_in_ms,
            { "Time To Bg Autoleave In Ms", "woww.time.to.bg.autoleave.in.ms",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_time_to_bg_start_in_ms,
            { "Time To Bg Start In Ms", "woww.time.to.bg.start.in.ms",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_time_to_remove_in_queue_in_ms,
            { "Time To Remove In Queue In Ms", "woww.time.to.remove.in.queue.in.ms",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_timer,
            { "Timer", "woww.timer",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_timer_type,
            { "Timer Type", "woww.timer.type",
                FT_UINT32, BASE_HEX_DEC, VALS(e_timer_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_timescale,
            { "Timescale", "woww.timescale",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_timestamp,
            { "Timestamp", "woww.timestamp",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_title,
            { "Title", "woww.title",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_title_text_id,
            { "Title Text Id", "woww.title.text.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_today_honorable_and_dishonorable,
            { "Today Honorable And Dishonorable", "woww.today.honorable.and.dishonorable",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_todo_amount_of_signers,
            { "Todo Amount Of Signers", "woww.todo.amount.of.signers",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_total_amount_of_auctions,
            { "Total Amount Of Auctions", "woww.total.amount.of.auctions",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_total_cost,
            { "Total Cost", "woww.total.cost",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_total_damage,
            { "Total Damage", "woww.total.damage",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_total_exp,
            { "Total Exp", "woww.total.exp",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_total_played_time,
            { "Total Played Time", "woww.total.played.time",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_trade_slot,
            { "Trade Slot", "woww.trade.slot",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_trade_slot_count,
            { "Trade Slot Count", "woww.trade.slot.count",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_trade_slot_number,
            { "Trade Slot Number", "woww.trade.slot.number",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_trade_status,
            { "Trade Status", "woww.trade.status",
                FT_UINT32, BASE_HEX_DEC, VALS(e_trade_status_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_trainer_spell_state,
            { "Trainer Spell State", "woww.trainer.spell.state",
                FT_UINT8, BASE_HEX_DEC, VALS(e_trainer_spell_state_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_trainer_type,
            { "Trainer Type", "woww.trainer.type",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_training_failure_reason,
            { "Training Failure Reason", "woww.training.failure.reason",
                FT_UINT32, BASE_HEX_DEC, VALS(e_training_failure_reason_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_transfer_abort_reason,
            { "Transfer Abort Reason", "woww.transfer.abort.reason",
                FT_UINT8, BASE_HEX_DEC, VALS(e_transfer_abort_reason_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_transport,
            { "Transport", "woww.transport",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_transport_progress_in_ms,
            { "Transport Progress In Ms", "woww.transport.progress.in.ms",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_trigger_id,
            { "Trigger Id", "woww.trigger.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_turn_rate,
            { "Turn Rate", "woww.turn.rate",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_tutorial_data,
            { "Tutorial Data", "woww.tutorial.data",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_tutorial_flag,
            { "Tutorial Flag", "woww.tutorial.flag",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_type_flags,
            { "Type Flags", "woww.type.flags",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_unimplemented,
            { "Unimplemented", "woww.unimplemented",
                FT_BYTES, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_unit_enemy_target,
            { "Unit Enemy Target", "woww.unit.enemy.target",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_unit_stand_state,
            { "Unit Stand State", "woww.unit.stand.state",
                FT_UINT32, BASE_HEX_DEC, VALS(e_unit_stand_state_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_unit_target,
            { "Unit Target", "woww.unit.target",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_unknown_bytes,
            { "Unknown Bytes", "woww.unknown.bytes",
                FT_BYTES, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_unknown_flags,
            { "Unknown Flags", "woww.unknown.flags",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_unknown_float,
            { "Unknown Float", "woww.unknown.float",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_unknown_guid,
            { "Unknown Guid", "woww.unknown.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_unknown_int,
            { "Unknown Int", "woww.unknown.int",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_unread_mails,
            { "Unread Mails", "woww.unread.mails",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_unused,
            { "Unused", "woww.unused",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_update_available_flag,
            { "Update Available Flag", "woww.update.available.flag",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_update_flag,
            { "Update Flag", "woww.update.flag",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_update_type,
            { "Update Type", "woww.update.type",
                FT_UINT8, BASE_HEX_DEC, VALS(e_update_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_url,
            { "Url", "woww.url",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_url_info,
            { "Url Info", "woww.url.info",
                FT_UINT8, BASE_HEX_DEC, VALS(e_url_info_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_usable,
            { "Usable", "woww.usable",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_username,
            { "Username", "woww.username",
                FT_STRINGZ, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_v_cos,
            { "V Cos", "woww.v.cos",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_v_sin,
            { "V Sin", "woww.v.sin",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_value,
            { "Value", "woww.value",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_vendor,
            { "Vendor", "woww.vendor",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_vendor_guid,
            { "Vendor Guid", "woww.vendor.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_vendor_slot,
            { "Vendor Slot", "woww.vendor.slot",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_vertical_speed,
            { "Vertical Speed", "woww.vertical.speed",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_victim,
            { "Victim", "woww.victim",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_victim_guid,
            { "Victim Guid", "woww.victim.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_walking_speed,
            { "Walking Speed", "woww.walking.speed",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_weather_change_type,
            { "Weather Change Type", "woww.weather.change.type",
                FT_UINT8, BASE_HEX_DEC, VALS(e_weather_change_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_weather_type,
            { "Weather Type", "woww.weather.type",
                FT_UINT32, BASE_HEX_DEC, VALS(e_weather_type_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_winning_player_guid,
            { "Winning Player Guid", "woww.winning.player.guid",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_winning_roll,
            { "Winning Roll", "woww.winning.roll",
                FT_UINT8, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_wiping_npc,
            { "Wiping Npc", "woww.wiping.npc",
                FT_UINT64, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_won,
            { "Won", "woww.won",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_world_result,
            { "World Result", "woww.world.result",
                FT_UINT8, BASE_HEX_DEC, VALS(e_world_result_strings), 0,
                NULL, HFILL
            }
        },
        { &hf_woww_x,
            { "X", "woww.x",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_xy_speed,
            { "Xy Speed", "woww.xy.speed",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_y,
            { "Y", "woww.y",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_yesterday_honor,
            { "Yesterday Honor", "woww.yesterday.honor",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_yesterday_honorable,
            { "Yesterday Honorable", "woww.yesterday.honorable",
                FT_UINT16, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_z,
            { "Z", "woww.z",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_z_speed,
            { "Z Speed", "woww.z.speed",
                FT_FLOAT, BASE_NONE, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_zone_id,
            { "Zone Id", "woww.zone.id",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_zone_or_sort,
            { "Zone Or Sort", "woww.zone.or.sort",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
        { &hf_woww_zones,
            { "Zones", "woww.zones",
                FT_UINT32, BASE_HEX_DEC, NULL, 0,
                NULL, HFILL
            }
        },
/* AUTOGENERATED_END_REGISTER */
    };

    static gint *ett[] = {
        &ett_woww,
        &ett_message,
        &ett_character
    };

    proto_woww = proto_register_protocol("World of Warcraft World",
            "WOWW", "woww");
    woww_handle = register_dissector("woww", dissect_woww, proto_woww);

    proto_register_field_array(proto_woww, hf, array_length(hf));
    proto_register_subtree_array(ett, array_length(ett));

    prefs_register_protocol(proto_woww, NULL);

}

void
proto_reg_handoff_woww(void)
{
    dissector_add_for_decode_as("tcp.port",  woww_handle);
}

/*
 * Editor modelines  -  https://www.wireshark.org/tools/modelines.html
 *
 * Local variables:
 * c-basic-offset: 4
 * tab-width: 8
 * indent-tabs-mode: nil
 * End:
 *
 * vi: set shiftwidth=4 tabstop=8 expandtab:
 * :indentSize=4:tabSize=8:noTabs=true:
 */
